知识卡片

ARIES崩溃恢复的三阶段

普通读书笔记卡

内容

数据库崩溃恢复分三阶段:分析阶段从最近Checkpoint的活跃事务表和脏页表出发,遍历日志求出未提交事务和未刷盘脏页;重做阶段把Redo Log全部重放,不分已提交未提交,先让数据库”原封不动”回到崩溃前状态;回滚阶段再撤销未提交事务(回滚本身实现为新增Commit操作,日志只追加不删除)。发散:先完整还原真相再针对性修正,比边还原边判断更简单可靠。

参考来源

- 位置:第6章《数据库》6.5.7节「事务Rollback与崩溃恢复(ARIES算法)」(源文件:_epub-src/text/part0031.html) - 结论依据:原文明确说明ARIES算法分为分析、重做(Repeating History,全部重放不分已提交未提交)、回滚(对未提交事务生成逆向SQL作为新的Commit操作追加)三个阶段,直接支持卡片对崩溃恢复先完整重放历史再针对性修正的论述。 - 原始内容:"当崩溃后再恢复的时候,会把Redo Log全部重放一遍,提交的事务和未提交的事务,都被重放了,从而让数据库'原封不动'地回到宕机之前的状态,这叫Repeating History……ARIES算法分为三个阶段:(1)阶段1:分析阶段……事务的回滚就变得简单了……相当于没有了回滚,全部都是Commit。"