DBMS检查点
精华
小牛编辑
208浏览
2023-03-14
- 检查点(checkpoint)是一种机制,其中所有先前的日志都从系统中删除并永久存储在存储磁盘中。
- 检查点就像一个书签。 在执行事务时,标记此类检查点,然后使用事务的步骤执行事务,将创建日志文件。
- 当它到达检查点时,事务将更新到数据库中,直到那时,整个日志文件将从文件中删除。 然后使用新的事务步骤更新日志文件,直到下一个检查点,依此类推。
- 检查点用于声明DBMS处于一致状态之前的一个点,并且所有事务都已提交。
使用检查点恢复
通过以下方式,恢复系统从此故障中恢复数据库:
- 恢复系统从头开始读取日志文件。它将日志文件从T4读取到T1。
- 恢复系统维护两个列表,一个重做列表和一个撤销列表。
- 如果恢复系统看到日志
<Tn,Start>
和<Tn,Commit>
或仅<Tn,Commit>
,则事务将进入重做状态。在重做列表及其上一个列表中,将删除所有事务,然后在保存日志之前重新执行。 - 例如: 在日志文件中,事务T2和T3将具有
<Tn,Start>
和<Tn,Commit>
。 T1事务在日志文件中只有<Tn,commit>
。这就是在检查点超越后提交事务的原因。因此,它将T1,T2和T3事务置于重做列表中。 - 如果恢复系统看到带有
<Tn,Start>
的日志但未找到提交或中止日志,则事务将进入撤消状态。在撤消列表中,撤消所有事务,并删除其日志。 - 例如: 事务T4将具有
<Tn,Start>
。因此,T4将被置于撤销列表中,因为此事务尚未完成且失败。