use*_*418 2 database recovery aries
为什么Aries算法在撤消之前应用重做,如果它已经知道在分析阶段之后要撤消哪些事务?
我知道(认为)它与Lsn数字有关并且在某种意义上保持一致性,因为在磁盘上刷新的数据可能与在崩溃时撤消事务不同(由于脏页面),但我找不到任何形式的"正式"答案(至少有一个我能理解的).
因为即使提交了事务,缓冲区上也可能存在未刷新的页面.ARIES 在缓冲区管理器中使用no-force.重做将事务表和脏页表带到崩溃时的状态.因此,成功的交易可以反映到稳定的存储.
我们需要在重做过程中重复所有历史崩溃,以确保在执行撤消过程之前数据库的一致性。
\n\n恢复算法 ARIES,为了确保 DBMS 的原子性和持久性,执行 3 遍:
\n\nUNDO数据日志是逻辑数据,而REDO数据日志是物理数据:
\n\n