数据库第10章作业——数据库恢复技术

本章作业是课后题第4和第5两道题。

在这里插入图片描述

首先,复习一下故障的种类和恢复策略。

故障的种类

①事务内部的故障

事务内部的故障有的是可以通过事务程序本身发现的,即是逻辑性的,可预期的,有的是非预期的,不能由事务程序处理,事务内部更多的故障是后者。如运算溢出,并发事务发生死锁等,这意味着没有到达预期的终点(commit或者显示的rollback)这时候就需要进行恢复操作——事务撤销。

②系统故障

系统故障是指造成系统停止运转的任何事件,使得系统要重新启动。如特定的硬件错误等。这类故障影响正在运行的所有事物,但不破坏数据库,恢复后,要撤销所有未完成的事务,重做所有已提交的事务,以将数据库真正恢复到一致状态。

③介质故障

系统故障常称为软故障,介质故障称为硬故障,硬故障指外存故障,如磁盘损坏。

④计算机病毒

恢复策略

①事务故障的恢复

利用日志文件撤销(undo)未正常终止的事务,恢复步骤如下

(1)反向扫描日志文件,查找该事务地更新操作
(2)对该事务的更新操作执行逆操作,即将日志记录中更新前的值写入数据库。
(3)继续反向扫描,查找该事务的其他更新操作,并做同样处理。
(4)如此反复下去,直至读到此事务的开始标记。

②系统故障的恢复

撤销故障发生时未完成的事务,重做已完成的事务。恢复步骤如下:

(1)正向扫描日志文件,找出在故障发生前已经提交的事务(这些事务既有begin-transaction记录,也有commit记录),将其事务标识计入重做队列。同时找出故障发生时尚未完成的事务(这些事务只有transaction记录,无相应的commit记录),将其事务标识计入撤销队列
(2)对撤销队列中的各个事务进行撤销处理。反向扫描
(3)对重做队列中的各个事务进行重做处理(正向扫描)

③介质故障的恢复

重装数据库,然后重做已完成的事务。利用数据库后备副本,装入相应的日志文件副本。

作业:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45845039/article/details/117067114