Advertisement

数据库作业20:第十章:数据库恢复技术

阅读量:

在这里插入图片描述
故障发生前已经提交的事务(既有BEGIN TRANSACTION记录,也有COMMIT记录),这些事务需要重做。
故障发生时还未完成的事务(只有BEGIN TRANSACTION记录,无对应的 COMMIT记录),这些事务需要回滚。
故障发生时还没开始的事务就没意义了。
(1)
故障在14之后,在故障发生之前已经提交的事务是T1和T3,需要重做。故障发生时尚未完成的事务T2和T4,需要回滚。
(2)
T1需要重做, T2、T3需要回滚。
(3)
T1需要重做, T2、T3需要回滚。
(4)
T1需要重做,T2需要回滚。
在这里插入图片描述
在这里插入图片描述
对重做的事务,正向扫描,将日志”更新后的值“写入数据库。
对回滚的事务,反向扫描,将日志“更新前的值”写入数据库。(回滚的事务的更新操作无效)
(1)
A=8,B=7,C=11(T1和T3更新的值有效)
(2)
A=10,B=0,C=11(T1更新的值有效)
(3)
A=10,B=0,C=11(T1更新的值有效)
(4)
A=10,B=0,C=11(T1更新的值有效)
(5)
A=10,B=0,C=11(T1更新的值有效)
(6)
A=0,B=0,C=0(此时没有重做的事务,都没完成提交,所以A,B,C的值都没被更新)

总结:感觉题难度不大,掌握系统故障的恢复,能判断发生故障时哪些事务应该进行哪些处理。

全部评论 (0)

还没有任何评论哟~