gpt4 book ai didi

database - 在 ARIES 恢复方法中重复历史记录有什么好处?

转载 作者:搜寻专家 更新时间:2023-10-30 19:46:14 27 4
gpt4 key购买 nike

ARIES algorithm ,为什么它需要在重做通行证中重复崩溃前的所有历史记录?我可以在分析过程中获取提交的事务编号,然后重做提交的事务日志记录吗?这种方法将减少需要重做和撤消的记录数。

最佳答案

简答:

我们需要在重做过程中重复崩溃之前的所有历史记录,以确保在执行撤消过程之前数据库的一致性。

长答案:

recovery algorithm ARIES , 为了保证 DBMS 的原子性和持久性, 执行 3 pass:

  1. Analysis pass:查看需要做什么(向前播放对数)
  2. Redo pass:确保磁盘反射(reflect)日志中但不在磁盘上的任何更新,包括那些属于最终将被回滚的事务的更新。这样可以确保我们处于一致状态,这将允许逻辑撤消。
  3. Undo pass:删除任何失败交易的操作

UNDO数据日志是逻辑的,而REDO数据日志是物理的:

  • 我们必须进行物理重做,因为我们不能保证数据库处于一致状态(因此,例如,记录“INSERT VALUE X INTO TABLE Y”可能不是一个好主意,因为 X 可能反射(reflect)在索引而不是表,反之亦然,以防插入时发生崩溃)
  • 我们可以进行逻辑撤销,因为在重做之后我们知道事情是一致的。事实上,我们必须执行逻辑 UNDO,因为我们只 UNDO 某些操作,并且 UNDO 的物理日志记录形式,例如,“索引 y 的拆分页 x”在索引管理或不变性方面可能不再是正确的事情维护。我们不必在重做期间担心这一点,因为我们会重复历史并重放所有内容,这意味着上次对数据库所做的任何物理修改仍然是正确的。

Source

关于database - 在 ARIES 恢复方法中重复历史记录有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13756196/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com