一,DBWN功能
将脏数据写盘
二,什么情况下会触发DBWN的进程呢?
1) check pointer:有检查点, 2) 脏数据达到阀值:达到buffer内存的10%即要将脏数据写到磁盘; 这就是造成为什么没有提交的脏数据会写到磁盘; 并且这样也不会影响读数据,因为在修改一个数据块时,在buffer cache 中会生成一个与原始数据一致的镜像数据,以供其他会话访问,和做 rollback时使用! 3) 扫描整个database buffer cache没有空闲: 这种情况是:虽然脏数据没有占到Buffer的10%,但是数据的缓存占了 太多Buffer空间,所以需要释放空间,会优先读取lruw(脏数据链表), 再读取LRU,做超0释放,释放数据缓存空间; 4) time off:每三秒调度一次数据写; 5) 在集群环境中的ping请求: 将所有结点的脏数据写磁盘,使数据状态一致,协同工作的 6) 删除表、截断表:drop table、trucat table; 7) tablespace read only: 表空间只读触发 8) tablespace offline: 表空间脱机触发数据写; 9) begin backup: 热备份命令触发数据写;