1.什么是实例恢复

在有了redo 和undo,和增量检查点的概念后,有助与更好的理解实例恢复,当实列崩溃发生时,内存数据丢失,而当时的内存中的db buffer 和磁盘上的datafile 内容不一致。这时候需要解决两个问题
)1重新构成崩溃时内存中还没有保存磁盘的已commit的变更块
)2.回滚到已被写只数据文件的uncommit块

oracle_体系 第九章实例恢复机制_第1张图片

2.增量检查发挥作用
oracle_体系 第九章实例恢复机制_第2张图片
每当增量检查点触发时,一部分dirty buffer 被刷新到磁盘,并记录了最后一次检查点的位置,当实列恢复时,oracle 首先从控制文件里找到最后一次检点位置,这个位置其实就是实列恢复时用哪个日志的起点(RBA)。然后是smon监控下的一系列动作

)1 rool forward

利用redo 将检查点位置之后的变更,包括commit和uncomm的都前滚出来,然后统统写到磁盘里。
)2 open

用户可以连接进来访问数据库

) roll back

回滚调数据文件中未提交的数据
oracle_体系 第九章实例恢复机制_第3张图片