简述数据库系统可能发生的故障及其恢复方法。
正确答案:故障有:事务内部故障;(事务在运行的过程中,由于某种原因,造成事务未运行到正常的终点就停止了运行)
恢复方法:
(1)反向扫描文件日志,查找该事务的更新操作
(2)对该事务的更新操作执行逆操作
(3)重复执行上面的12操作,恢复该事务的其他更新操作,直至读到该事务的开始标记。事务恢复故障就完成了。
系统故障;(造成系统停止运转的任何事件,从而使系统必须重新启动)
发生故障时,一些尚未完成的事务的部分结果已送入物理数据库,从而造成数据库可能处于不正确状态。
还有,有些已完成的事务有一部分甚至全部留在缓冲区,尚未写进磁盘上的物理数据库。
恢复方法:
(1)正向扫描日志文件,找出在故障发生前已经提交的事务,将其事务标记记入重做队列。同时找出故障发生时尚未完成的事务,将其事务标记记入撤销队列
(2)对撤销队列中的各个事务进行撤销处理
(3)对重做队列中的各个事务进行重做处理
介质故障;
恢复方法:
(1)装入最新的数据库后备副本,使数据库恢复到最近的一次转储时一致的状态。
(2)装入相应日志文件副本,重做已经完成的事务。
计算机病毒; 用户操作错误
恢复方法:
(1)反向扫描文件日志,查找该事务的更新操作
(2)对该事务的更新操作执行逆操作
(3)重复执行上面的12操作,恢复该事务的其他更新操作,直至读到该事务的开始标记。事务恢复故障就完成了。
系统故障;(造成系统停止运转的任何事件,从而使系统必须重新启动)
发生故障时,一些尚未完成的事务的部分结果已送入物理数据库,从而造成数据库可能处于不正确状态。
还有,有些已完成的事务有一部分甚至全部留在缓冲区,尚未写进磁盘上的物理数据库。
恢复方法:
(1)正向扫描日志文件,找出在故障发生前已经提交的事务,将其事务标记记入重做队列。同时找出故障发生时尚未完成的事务,将其事务标记记入撤销队列
(2)对撤销队列中的各个事务进行撤销处理
(3)对重做队列中的各个事务进行重做处理
介质故障;
恢复方法:
(1)装入最新的数据库后备副本,使数据库恢复到最近的一次转储时一致的状态。
(2)装入相应日志文件副本,重做已经完成的事务。
计算机病毒; 用户操作错误
答案解析:有

微信扫一扫手机做题