问题详情

针对不同的故障,试给出恢复的策略和方法。(即如何进行事务故障的恢复?系统故障的恢复?介质故障恢复?)


时间:2022-01-11 23:46 关键词: 大学试题 工学

答案解析

事务故障的恢复:事务故障的恢复是由DBMS&ensp;DBMs&ensp;执行恢复步骤是:&ensp;自动完成的,对用户是透明的。<br> (1)反向扫描文件日志(即从最后向前扫描日志文件),查找该事务的更新操作;<br> (2)对该事务的更新操作执行逆操作,即将日志记录中&ldquo;更新前的值&rdquo;写入数据库;<br> (3)继续反向扫描日志文件,做同样处理;<br> (4)如此处理下去,直至读到此事务的开始标记,该事务故障的恢复就完成了。<br> 系统故障的恢复:<br> 系统故障可能会造成数据库处于不一致状态:一是未完成事务对数据库的更新可能已写入数据库;二是已提交事务对数据库的更新可能还留在缓冲区,没来得及写入数据库。因此恢复操作就是要撤销(UNDO&ensp;)故障发生时未完成的事务,重做(REDO&ensp;)已完成的事务。&ensp;系统的恢复步骤是:<br> (1)正向扫描日志文件,找出在故障发生前已经提交的事务队列(REDO&ensp;队列)和未完成的事务队列(uNDO&ensp;队列)。<br> (2)对撤销队列中的各个事务进行UNDO&ensp;处理。<br> 进行UNDO&ensp;处理的方法是,反向扫描日志文件,对每个UNDO&ensp;事务的更新操作执行逆操作,即将日志记录中&ldquo;更新前的值&rdquo;Before&ensp;Image&ensp;)写入数据库。<br> (3)对重做队列中的各个事务进行REDO&ensp;处理。<br> 进行REDO&ensp;处理的方法是:正向扫描日志文件,对每个REDO&ensp;事务重新执行日志文件登记的操作。即将日志记录中&ldquo;更新后的值&rdquo;Afte&ensp;,&ensp;Image&ensp;)写入数据库。<br> 介质故障的恢复:<br> 介质故障是最严重的一种故障。<br> 恢复方法是重装数据库,然后重做已完成的事务。具体过程是:<br> (1)&ensp;DBA&ensp;装入最新的数据库后备副本(离故障发生时刻最近的转储副本),&ensp;使数据库恢复到转储时的一致性状态;<br> (2)&ensp;DBA&ensp;装入转储结束时刻的日志文件副本;<br> (3)&ensp;DBA&ensp;启动系统恢复命令,由DBMS&ensp;完成恢复功能,即重做已完成的事务。