问题 问答题

怎样进行介质故障及系统故障的恢复数据库中为什么要有恢复子系统其有什么功能

答案

参考答案:在发生介质故障时,磁盘上的物理数据库被破坏,这时的恢复操作分为以下几步:
(1)重装转储后的后备副本,使数据库恢复到转储时的一致性状态。
(2)从故障开始,反向阅读日志文件,找出已经提交事务标记重做队列。
(3)从故障开始,反向阅读日志文件,根据重做队列的记录,重做所有已完成的事务,将数据库恢复至故障前某一刻的一致性状态。
当系统故障发生时,造成数据库处于一种不一致性状态的主要原因有两个:一个是一些未完成事务对数据库的部分更新已写入数据库中;另一个是一些已提交事务对数据库的更新还留在内存缓冲区,没来得及写回数据库。因此,基本的恢复操作分为以下两步:
(1)根据日志文件建立重做队列和撤销队列从头扫描日志文件,找出故障前已提交的事务记录,将其事务标识放入重做队列;还要找出故障前尚未完成的事务,将该事务放入撤销队列。
(2)对重做队列中的事务进行重做处理,对撤销队列中的事务进行撤销处理。对重做处理,正向扫描日志文件,再根据重做队列,将已完成的事务的所有操作重新执行;对于撤销处理,反向扫描日志文件,再根据撤销队列,将未完成的事务的更新操作执行逆操作。
由于硬件的故障、系统软件和应用软件的错误、操作的失误及恶意的破坏都是不可避免的,这些故障轻则会造成运行事务非正常中断,影响数据库中数据的正确性;重则破坏数据库,使数据库中的数据部分或全部丢失。为了保证各种故障发生后数据库中的数据都能从错误状态恢复到某种逻辑一致性状态,DBMS中的恢复子系统是必不可少的。
恢复子系统的功能就是利用冗余数据,再根据故障的类型采取相应的恢复措施,把数据库恢复到故障前某一时刻的一致性状态。

问答题 简答题
填空题