数据库恢复--ARIES 算法

发布: 2009-08-12 13:19

大多数数据恢复均采用 ARIES 算法。该算法的三个基本原理:
1 WAL(Write-ahead logging) 写优先日志法
对于数据库的修改永远先写LOG然后再修改数据库。因此,修改数据的流程如下(假设内存中没有需要修改的数据)

从硬盘读取数据到内存中 ——〉写日志(更新记录的日志) ——〉修改内存中对应数据

该原理能确保数据不丢失,已经保证读一致性。大多数数据库都是采用这个原理。
之后,我会介绍oralce是如何使用WAL保证系统崩溃时数据库不丢失。

2 重做时重复历史
数据库会从某一时间点开始(经过分析后确定该时间点),根据该点之后所有事务日志恢复所有事务,而不是仅仅恢复提交的事务。
在我看来,重做某一时间点之后的所有事务,与只重做提交事务相比较,前者对于恢复进程而言更加简单减少判断,其他优点我暂时没有想出来。

3恢复修改记录
反做(撤消)没有提交的事务,这点能保证数据库的正确性。


原文: http://qtchina.tk/?q=node/321

Powered by zexport