第3题:
1、针对不同的故障,给出恢复的策略和方法。(即如何进行事务故障的恢复、系统故障的恢复以及如何进行介质故障的恢复)
故障种类:事务内部的故障. 2. 系统故障/ 软故障. 3. 介质故障/ 硬故障. 4. 计算机病毒.恢复的策略与方法:事务故障:恢复子系统利用日志文件撤消(Undo) 此事务已对数据库进行的修改.步骤为:1 反向扫描文件日志, 查找该事务的更新操作.2 对该事务的更新操作执行逆操作. 即将日志记录中“更新前的值” 写入数据库.3 继续反向扫描日志文件, 查找该事务的其他更新操作, 并做同样处理.4 如此处理下去, 直至读到此事务的开始标记, 事务故障恢复就完成了.系统故障: Undo 故障发生时未完成的事务; Redo 已完成的事务.步骤为:1. 正向扫描日志文件(即从头扫描日志文件); 找到重做(Redo) 队列和撤销(Undo) 队列.2 对撤销(Undo) 队列事务进行撤销(Undo) 处理.反向扫描日志文件, 对每个Undo 事务的更新操作执行逆操作, 即将日志记录中“更新前的值” 写入数据库.3 对重做(Redo) 队列事务进行重做(Redo) 处理. 正向扫描日志文件, 对每个Redo 事务重新执行登记的操作, 即将日志记录中“更新后的值” 写入数据库.介质故障: 重装数据库; 重做已完成的事务.步骤为:1 装入最新的后备副本, 使数据库恢复到最近一次转储时的一致性状态.2 装入有关的日志文件副本(转储结束时刻的日志文件副本) , 重做已完成的事务. 首先扫描日志文件, 找出故障发生时已提交的事务的标识, 将其记入重做队列. 然后正向扫描日志文件, 对重做队列中的所有事务进行重做处理. 即将日志记录中“更新后的值” 写入数据库.