oracle中DBWR全称,你所不知道的DBWR----DBWR工作原理简述

本帖最后由 vage 于 2013-3-14 23:46 编辑

DBWR原理分析暂告一段落,接下来继续写书。花费两周,形成的可用性结果不多,也就检查点写和LRUW写比例问题。但通过这次分析,理解了DBWR工作机制,脏块如何被整理成Batch,IO如何合并,块何时进入LRUW,又何时进入AUX LRUW,Obj-Q的巨大作用等。虽然研究结果大部分没有用,但明明白白维护Oracle,一直是我追求的目标。

仔细回味一下,有一种刚看完一季悬疑侦探剧的感觉,经过追踪、分析,结果一个个水落石出,但最终的大Boss还逍遥法外,还有艰辛苦的续集在等着我。道之所在,虽千万人吾往矣。

简单总结一下,等书写完,有了时间,详细为大家总结一下。

1、IO情况:分Batch,将相邻的块合并,异步的提交IO。每个Batch中IO是异步,Batch与Batch之间为串行。比如,某个Batch是100个块,发现相连的块有50个、40个、8个,还有两个块不相连,将50个块从Buffer Cache的不同位置复制到共享池中一块连续的大内存中(此时如果内存不足,会报4031),提交异步IO,将此连续的大块内存写磁盘。再将40个块从Buffer Cache的不同位置也复制到共享池中一块连续的大内存,提交异步IO,等等。对于不相连的块,不在复制,直接提交异步IO从Buffer Cache写磁盘。然后等这个Batch中所有IO完成,开始下一个Batch。所有,Batch与Batch之间,是同步、串行的。

2、从检查点队列写时的IO合并算法


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部