2008-07-14 10:00:57 来源:IT专家网
lowcacherba
就是CKPT记录的DBWR写出的进度,也就是更新到控制文件和数据文件的进度记录,对于增量检查点,因为我们都知道,当checkpoint发生的时候,ckpt进程会通知dbwn进程去写出dirty buffer,但是需要特别注意的是ckpt进程通知dbwn进程后,并不需要等待dbwn写到当前触发检查点那个时候的scn后,再去更新当前控制文件和数据文件的scn(当然ckpt是有心跳的,通过心跳ckpt进程可以监视dbwn写的进度),而是将当前刚刚写完的dirty buffer(写多少算多少,写完那个算那个)对应的scn更新到数据文件和控制文件当中,我们都知道修改的databuffer会被移动到checkpoint queue中,当然这个dirty buffer是在checkpoint queue中按照low rba的先进先出的顺序写出的,无论后来对这个buffer做了多少次修改,他在queue中的写出顺序是不会被改变的。那么每3秒钟,ckpt还会去更新控制文件和数据文件的heartbeat值。那么实际上每隔3秒,也会触发检查点,但是,这样的操作并没有被oracle正式作为一种检查点的触发方式列入文档 ,因为这个3秒记录的是dbwr的写的进度而不是通知让dbwr去写出。
on disk rba就是LGWR的写进度
如果数据库carsh了,low cache rba是恢复的起点,on disk rba是恢复的终点。
分析:
dbwr成功写完后并不会把当前的此刻scn信息写到控制文件中,只有CKPT才更新控制文件和数据文件头,dbwr只要成功将dirty data写入数据文件就是成功, CKPT只要能将最新DBWR写完的SCN更新到控制文件和数据文件头就算成功。但是由于CKPT进程不是实时更新dbwr写完的scn到控制文件中,而是采用每3妙更新一次的策略,因此最后有ckpt进程写进控制文件的scn信息有可能不是当前dbwr刚刚写完的scn值。这点应该注意,也就是说dbwr写的进度与ckpt进程更新控制文件的进度是不同的。
免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。