实例恢复详解

      实例恢复分为前滚和回退两个阶段。前滚阶段,SMON打开每个数据文件时记录该文件已同步的SCN值,在全部数据文件都打开后,SMON用已同步过的最小的SCN值在联机重做日志文件中逆向匹配,找到包含该SCN的第一条重做条目,然后从下一个SCN的第一条重做条目开始,把每一条重做记录所对应的事务都重新执行一遍,一直到重做日志文件结尾。增量检查点机制会对前滚操作进行优化以提高前滚的效率。现在,数据文件里就包含了截止到故障点的所有已提交和未提交的数据库修改,但是未提交的更改是不应该写入数据库的,出现这个情况的原因在于重做条目是在事务开始执行时就产生了,但是同时开始执行的事务不一定同时结束,那些跨故障点的事务虽然没有提交,但重做条目在事务开始执行时就已经按顺序写入重做日志缓冲区并很快写入联机重做日志文件组。在回退阶段,以只读方式打开数据库,对所有前滚过的重做条目重新检查一遍,凡是提交状态的SCN和时间戳为空的条目,把该条目前滚时所产生的还原数据从还原段读出直接覆盖数据文件相对应的块。同时修改相应的元数据,最后把数据库状态改为读写方式。至此,数据库中就只包含了截止到故障点的所有已提交的数据库的修改。自动的实例恢复执行完成,用户就可以正常执行事务了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值