关注公众号凡花花的小窝,收获更多的考研计算机专业编程相关的资料
10.5恢复策略
10.5.1事务故障的恢复
事务故障:事务在运行到正常终止点前被终止
恢复方法
由恢复子系统利用日志文件撤销UNDO此事务已经对数据库进行的修改
事务故障的恢复由系统自动完成,对用户是透明的,不需要用户干预
事务故障的恢复步骤
1.反向扫描文件日志(即从最后向前扫描日志文件),查找该事务的更新操作
2.对该事务的刚更新操作执行逆操作,即将日志记录中更新前的值写入数据库
插入操作:“更新前的值”为空,则相当于做删除操作
删除操作:“更新后的值”为空,则相当于做插入操作
如果是修改操作,则相当于用修改前的值代替修改后的值
3.继续反向扫描日志文件,查找该事务的其他更新操作,并作同样的处理
4.如此处理下去了,知道读到此事务的开始标记,事务故障恢复就完成了
10.6.2系统故障的恢复
系统故障造成的数据库不一致的状态的原因:
未完成事务对数据库的更新可能已经写入数据库
已经提交的事务对数据库的更新可能还留在缓冲区没有来得及写入数据库中
恢复方法
1.UNDO故障发生的时候没有完成的事务