数据库第十章作业

本文详细阐述了系统故障对数据库的影响以及恢复策略。当系统故障发生时,未完成事务的结果可能导致数据库不一致,恢复子系统需回滚未完成事务并重做已提交事务。恢复过程包括正向扫描日志,区分已完成和未完成事务,然后分别进行撤销和重做处理,以确保数据一致性。
摘要由CSDN通过智能技术生成

题目如下:

在这里插入图片描述

关于系统故障:

系统故障是指造成系统停止运转的任何事件,使得系统重新启动。发生系统故障时,一些未完成的事务的结果可能已经送入物理数据库,从而造成数据库处于不正确的状态,为了保证数据一致性,需要清除这些事务对数据库的所有修改。

恢复子系统必须在系统重新启动的时候让所有非正常终止的事务回滚,强行撤销所有未完成的事务。

另一方面,发生系统故障时,有些已完成的事务可能一部分甚至全部在缓冲区,尚未写回磁盘上的物理数据库,系统故障使得这些事务对数据库的修改部分或全部丢失,这也会使数据库处于不一致状态,因此应将这些事务已提交的结果重新写入数据库。所以恢复子系统还需要重做所有已提交的事务。

系统故障的恢复策略:

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

答案:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值