实例恢复机制
有了redo,undo和增量ckpt概念后,有助于更好的理解实例恢复
实例崩溃时,内存中的db buffer和磁盘上的datafile不一致。
实例恢复要解决的两个问题是:
重新构成崩溃时内存中还没有保存到磁盘的已commit的变更块。
回滚已被写至数据文件的uncommit的变更块。
由于引入了增量检查点,当实例恢复时,oracle首先从控制文件里找到最后一次检查点位置,这个位置就是实例恢复时运用日志的起点。
然后是smon监控下的一系列动作:
1) roll forward :利用redo,将检查点位置之后的变更,包括commit和uncommit的都前滚出来了,然后统统写到内存(cache)里。所以又叫cache recover
2) open: 用户可以连接进来,访问数据库。
3) roll back : 通过undo,把写入内存和磁盘里(datafile)的uncommit数据都回滚掉。
有了redo,undo和增量ckpt概念后,有助于更好的理解实例恢复
实例崩溃时,内存中的db buffer和磁盘上的datafile不一致。
实例恢复要解决的两个问题是:
重新构成崩溃时内存中还没有保存到磁盘的已commit的变更块。
回滚已被写至数据文件的uncommit的变更块。
由于引入了增量检查点,当实例恢复时,oracle首先从控制文件里找到最后一次检查点位置,这个位置就是实例恢复时运用日志的起点。
然后是smon监控下的一系列动作:
1) roll forward :利用redo,将检查点位置之后的变更,包括commit和uncommit的都前滚出来了,然后统统写到内存(cache)里。所以又叫cache recover
2) open: 用户可以连接进来,访问数据库。
3) roll back : 通过undo,把写入内存和磁盘里(datafile)的uncommit数据都回滚掉。