DBMS检查点

  • 检查点(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将被置于撤销列表中,因为此事务尚未完成且失败。

上一篇:DBMS基于日志的恢复

下一篇:DBMS死锁

关注微信小程序
程序员编程王-随时随地学编程

扫描二维码
程序员编程王

扫一扫关注最新编程教程