数据库-恢复策略

当系统运行过程中发生故障,利用数据库后背副本和日志文件系统就可以将数据库恢复到故障前的某个一致性状态。不同的故障其恢复策略和方法也不一样。

事务故障的恢复

事务故障是指事务在运行至正常终点前被终止,这时恢复子系统应利用日志文件撤销UNDO此事务已对数据库进行的修改。事务故障的恢复是由系统自动完成的,对用户是透明的,系统的恢复步骤是:
1:反向扫描日志文件,即从最后向前扫描日志文件,查找该事务的更新操作。
2:对该事务的更新操作执行逆操作,即将日志记录中更新前的值写入数据库。
3:继续反向扫描日志文件,查找事务的其他操作,并做同样处理。
4:如此处理下去,直至读到此事务的开始标记,事务故障恢复就完成了。

系统故障的恢复

系统故障造成数据库不一致状态的原因有二个,一是未完成事务对数据库的更新操作可能已经写入数据库,二是已经提交的事务操作对数据库的更新可能还留在缓冲区没有来的及写入数据库。因此恢复操作就是在撤销故障发生时未完成的事务,重写已经完成的事务。
系统的恢复步骤是:
1:正向扫描日志文件,即从头开始扫描文件,找出在故障发生前已经提交的事务,将这些事务标记入重做队列,同时找出故障发生时尚未完成的事务,将其事务标记入撤销队列。
2:对撤销队列中的各个事务进行撤销处理。进行撤销处理的方法,反向扫描日志文件,对每个撤销事务的更新操作执行逆操作。
3: 对重做队列中的各个事务进行重做处理。进行重做处理的方法是正向扫描日志文件,对每个重做事务重新执行日志文件登记的操作。

介质故障的恢复

发生介质故障后,磁盘上的物理数据和日志文件被破坏,这是最严重的一种故障,恢复方法是重装数据库,然后重做已经完成的事务。
1:装入最新的数据库后备副本,使数据库恢复到最近的一次转储是的一致性状态。

2:装入相应的日志文件副本,重做已经完成的事务,即扫描日志文件,找出故障发生时已经提交的事务标识,将其记入重做队列,然后正向扫描日志文件,对重做队列中的所有事务进行重做处理。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值