数据库原理 恢复策略

三种不同的数据库故障,其恢复数据库的策略也是不同的 

  • 事务故障的恢复
  • 系统故障的恢复
  • 介质故障的恢复

1、事务故障的恢复

事务故障:事务运行至正常终点前被终止

恢复方法:利用日志文件撤销此事务对数据库进行的修改

恢复步骤

  • 反向扫描日志文件,查找该事务的更新操作
  • 对该事务的更新操作执行逆操作:即是将更新前的值写入数据库

特点:事务故障的恢复由系统自动完成,不需要用户进行干预

2、系统故障的恢复

系统故障造成数据库不一致性的原因:

  • 未完成事务对数据库的更新已经写入数据库
  • 已经提交的事务仍然留在缓冲区,没有写入数据库

恢复的方法:

  • Undo故障发生时未发生的事务
  • Redo已经完成的事务

恢复的步骤:

  • 正向扫描日志文件,根据有无BEGIN TRANSACTION和COMMIT记录来分类Undo队列和Redo队列
  • 对Undo队列的事务进行撤销处理(反向扫描,将更新前的值写入数据库)
  • 对Redo队列的事务进行重做处理(正向扫描,将更新后的值写入数据库)

特点:系统故障的恢复由系统在重新启动的时候自动恢复,不需要用户干预

3、介质故障的恢复:

  • 重装数据库
  • 重做已经完成的事务

恢复步骤:

①、装入最新的后备数据库副本,是数据库恢复到最近一次数据库一致性的状态

  • 对于静态转储的数据库副本,装入后数据库即处于一致性的状态
  • 对于动态转储的数据库副本,还必须装入转储时刻的日志文件副本,利用恢复系统故障的方法,才能将数据库恢复一致性状态

②、装入有关的日志文件副本,重做已经完成的事务

  • 首先扫描日志文件,找出故障发生时已经提交的事务的表示,将其记入重做队列
  • 然后正向扫描日志文件,将重做队列中的事务进行重做处理,即将更新后的值写入数据库

特点:介质故障的恢复需要管理员的介入

管理员的工作:

  • 重装最近一次的数据库副本以及日志文件副本
  • 执行系统提供的恢复命令,但是具体的恢复操作仍由数据库管理系统完成

3、小结

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值