个性化阅读
专注于IT技术分析

DBMS基于日志的恢复

  • 日志是一系列记录。每个事务的日志都保存在某个稳定的存储中, 以便在发生任何故障时都可以从那里恢复它。
  • 如果对数据库执行了任何操作, 则它将记录在日志中。
  • 但是, 应在将实际事务应用到数据库之前完成存储日志的过程。

假设有一笔交易可以修改一个学生的城市。将为此事务写入以下日志。

  • 启动事务时, 它将写入“开始”日志。
  • 当交易将城市从“诺伊达”修改为“班加罗尔”时, 会将另一个日志写入文件。
  • 事务完成后, 它将写入另一个日志以指示事务结束。

有两种修改数据库的方法:

1.延迟数据库修改:

  • 如果事务在提交之前不修改数据库, 则发生延迟修改技术。
  • 通过这种方法, 将创建所有日志并将其存储在稳定存储器中, 并在提交事务时更新数据库。

2.立即修改数据库:

  • 如果在事务仍处于活动状态时发生数据库修改, 则会发生立即修改技术。
  • 在这种技术中, 每次操作后立即修改数据库。它遵循实际的数据库修改。

使用日志记录进行恢复

当系统崩溃时, 系统将查阅日志以查找哪些事务需要撤消, 哪些事务需要重做。

  1. 如果日志包含记录<Ti, Start>和<Ti, Commit>或<Ti, Commit>, 则需要重做事务Ti。
  2. 如果日志包含记录<Tn, 开始>但不包含记录<Ti, 提交>或<Ti, 中止>, 则需要撤消事务Ti。
赞(0)
未经允许不得转载:srcmini » DBMS基于日志的恢复

评论 抢沙发

评论前必须登录!