数据库恢复策略

系统故障的恢复

撤销故障发生时未完成的事务,重做已完成的事务

恢复步骤:

1.正向扫描日志文件

从头扫描日志文件,找出故障发生前已经提交的事务(既有begin transaction记录,又有commit记录),将该事务标识记入重做队列(REDO-LIST)。同时找出故障发生时尚未完成的事务(只有beigin transaction)将该事务标识记入撤销队列(UNDO-LIST)。

2.对撤销队列中的各个事务进行撤销处理

反向扫描日志文件,对每个撤销事务的更新操作执行逆操作,即将日志记录中“更新前的值”写入数据库。

3.对重做队列中的各个事务进行重做处理

正向扫描日志文件,对每个重做事务重新执行执行日志文件登记的操作,即将日志记录中“更新后的值”写入数据库。

注:已提交的事务必须有commit记录。

猜你喜欢

转载自blog.csdn.net/zsadytuty/article/details/86644374