【发布时间】:2012-11-25 05:23:27
【问题描述】:
在ARIES algorithm中,为什么需要在redo pass中重复崩溃前的所有历史? 我可以在分析过程中获取已提交的事务编号,然后重做已提交的事务日志记录吗?这种方法将减少需要重做和撤消的记录数。
【问题讨论】:
标签: database algorithm rdbms recovery aries
在ARIES algorithm中,为什么需要在redo pass中重复崩溃前的所有历史? 我可以在分析过程中获取已提交的事务编号,然后重做已提交的事务日志记录吗?这种方法将减少需要重做和撤消的记录数。
【问题讨论】:
标签: database algorithm rdbms recovery aries
我们需要在 redo pass 中重复崩溃前的所有历史记录,以确保在执行 undo pass 之前数据库的一致性。
recovery algorithm ARIES,为了保证DBMS的原子性和持久性,执行3遍:
UNDO 数据日志是逻辑的,而 REDO 数据日志是物理的:
【讨论】:
原因是因为 ARIES 被设计为使用无暴力/偷窃方法。 “窃取”部分意味着来自未提交事务的更改可能会写入磁盘。因此,我们需要重做所有已提交和未提交的事务,以便撤消未提交的事务。
【讨论】: