加入收藏 | 设为首页 | 会员中心 | 我要投稿 东莞站长网 (https://www.0769zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Low cache RBA和On disk RBA的差异

发布时间:2021-06-28 12:02:17 所属栏目:大数据 来源:互联网
导读:lowcacherba 就是CKPT记录的DBWR写出的进度,也就是更新到控制文件和数据文件的进度记录,对于增量检查点,因为我们都知道,当checkpoint发生的时候,ckpt进程会通知dbwn进程去写出dirty buffer,但是需要特别注意的是ckpt进程通知dbwn进程后,并不需要等待dbwn

    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进程更新控制文件的进度是不同的。

(编辑:东莞站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!