理解redo(5)深入学习RBA

2014-11-24 18:40:42 · 作者: · 浏览: 0

1 定义


RBA就是redo entries在重做日志文件中所对应的地址


2 组成


RBA由三部分组成:


序列号(4个字节)


块号(4个字节)


起始字节(2个字节)


以上都是16进制存储


3 类型


3.1 LRBA


定义:块第一次变脏时所对应的redo entries在redo log file里的位置


注释:CKPT-Q按LRBA的顺序维护脏块,执行检查点事件时,DBWn从CKPT-Q按LRBA的顺序写出。LRBA也就是checkpoint position。从检查点位置(LRBA)处,应用重做记录到On disk rba处,这个过程就是前滚。



3.2 HRBA


定义:脏块在buffer cache中最近一次被更新时产生的redo entries在redo log file里的位置


注释:如果HRBA > on-disk RABA,那么HRBA所对应的相关redo entries还在redo log buffer中,如果实例crash,则HRBA是不可能被恢复的。


3.3 checkpoint RBA


定义:在CKPT-Q上第一个脏数据块的LRBA,这个RBA之前的脏数据已经被全部写入磁盘。


注释:当一个checkpoint事件发生的时候,CKPT进程会记录下当时所写的重做日志记录的地址(即RBA),此时记录的RBA被称之为checkpoint RBA,从上一个checkpoint RBA到当前checkpoint RBA之间的日志所保护的buffer cache中的脏块接下来将会被写进数据文件。


3.4 on-disk RBA


定义:LGWR 写日志文件的最末位置的地址,磁盘中重做日志文件的最后一条重做记录。


3.5 target RBA


定义:检查点事件结束时的checkpoint RBA


注释:为了缩短实例恢复的时间,DBWn会尽力把checkpoint RBA的目标值定的长远点。