- 检查点是一种机制, 其中所有以前的日志都从系统中删除并永久存储在存储磁盘中。
- 检查点就像书签。在执行事务时, 将标记此类检查点, 然后执行事务, 然后使用事务步骤创建日志文件。
- 当到达检查点时, 该事务将被更新到数据库中, 直到该点为止, 整个日志文件将从该文件中删除。然后, 使用新的事务步骤更新日志文件, 直到下一个检查点, 依此类推。
- 检查点用于声明一个点, 在该点之前DBMS处于一致状态, 并且所有事务都已提交。
文章图片
- 恢复系统从头开始读取日志文件。它从T4到T1读取日志文件。
- 恢复系统维护两个列表, 一个重做列表和一个撤消列表。
- 如果恢复系统看到带有< Tn, Start> 和< Tn, Commit> 或只是< Tn, Commit> 的日志, 则事务将进入重做状态。在重做列表及其先前的列表中, 所有事务都将被删除, 然后在保存其日志之前重做。
- 例如:在日志文件中, 事务T2和T3将具有< Tn, 开始> 和< Tn, 提交> 。 T1事务在日志文件中将只有< Tn, commit> 。这就是为什么在检查点越过后才提交事务的原因。因此, 它将T1, T2和T3事务放入重做列表。
- 如果恢复系统看到带有< Tn, Start> 的日志, 但未找到提交或中止日志, 则事务将进入撤消状态。在撤消列表中, 所有事务都被撤消, 并且它们的日志也被删除。
- 例如:事务T4将具有< Tn, 开始> 。因此T4将被放入撤消列表, 因为此事务尚未完成且失败。
推荐阅读
- DBMS SQL的特点
- DBMS Boyce Codd范式(BCNF)
- DBMS和B+树原理
- DBMS B+文件组织
- DBMS体系结构(架构)
- DBMS聚合详解
- DBMS SQL的优点
- DBMS数据模型