ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ORACLE增量检查点,LRBA,BWR

ORACLE增量检查点,LRBA,BWR

原创 Linux操作系统 作者:wei-xh 时间:2010-05-08 14:30:54 0 删除 编辑

说是DBWR会依据LRBA顺序将脏块刷新输出到磁盘
如果按如下顺序更新
RBA :692.2998.10
Update table set name=low(name) where id=2;
------块1
RBA :692.3015.10
Update table set name=low(name) where id=4;
------块2
RBA :692.3024.10
Update table set name=low(name) where id=7;
------块3
RBA :692.3033.10
Update table set name=low(name) where id=3;
------块1
RBA :692.3102.10
Update table set name=low(name) where id=10;
------块4
RBA :692.3127.10
Update table set name=low(name) where id=13;
------块5
RBA :692.3136.10
块一应该在检查点队列的最前面,它应该最先被输出到硬盘,可它的输出会连同RBA:692.3033.10(它也修改的块一)也刷新输出。
假如块一输出后,系统断电,那么在数据库恢复的时候会从RBA:692.3024.10(第二个UPDATE语句)开始恢复,可是恢复到:RBA:692.3033.10的时候,由于块一已经刷新输出了,ORACLE还会应用这条重做记录吗?

不会的其实,ORALCE每写一个脏快,会在日志里增加一跳bwr记录。代表这个块已经被写到磁盘。

而且在根据checkpoint queue写的时候,每三秒还会在控制文件里记录LRBA的信息。下次恢复的时候,这个LRBA就是恢复起点,再通过BWR的协作,就能完成实例恢复了。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22034023/viewspace-662234/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle ACE组成员,DBGeeK用户组发起人。曾在DTCC、ORACLE技术嘉年华、Gdevops等公开场合做过数据库技术专题分享,2017年应Oracle邀请在世界最大的数据库会议OOW上做技术分享。组织翻译了《拨云见日,解密Oracle ASM内核》一书。

注册时间:2009-07-04

  • 博文量
    422
  • 访问量
    2425303