数据库原理之具有检查点的恢复技术

系统故障造成数据库不一致状态的原因有两个:

  1. 未完成事务对数据库的更新可能已写入数据库
  2. 已提交事务对数据库的更新可能还留在缓冲区没来得及写入数据库。

恢复操作就是要撤销故障发生时未完成的事务,重做已完成的事务
为了节约资源,引入检查点记录,增加一个重新开始文件,并让恢复子系统在登录日志文件期间动态地维护日志。
例:
请添加图片描述
在检查点之后,系统故障之前,重做已完成的,撤销未完成的。

  1. T1在检查点之前已经提交,不必执行重做操作。
  2. T2在检查点之前开始执行,在检查点之后故障点之前提交。其对数据库所作的修改在故障发生时可能还在缓冲区中,尚未写入数据库,所以需要重做。
  3. T3在检查点之前开始执行,在故障点时还未完成。直接撤销。
  4. T4在检查点之后开始执行,在故障点之前提交。其对数据库所作的修改在故障发生时可能还在缓冲区中,尚未写入数据库,所以需要重做。
  5. T5在检查点之后开始执行,在故障点时还未完成。直接撤销。

故障之前提交的需要重做,故障之前开始的需要回滚,故障之后开始的什么也不用干。系统恢复后值只与已提交的事务有关。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值