一、故障的分类 Failure Classification

  1. 事务故障 Transaction Failure
  2. 系统崩溃 System Crash
  3. 磁盘故障 Disk Failure

二、基于日志的恢复 Log-Based Recovery

1. 日志 Log

示例:

<T1 start>
<T1, A, 100, 200>
<T2 start>
<T2, B, 300, 400>
<T3 start>
<T1, C, 500, 600>
<T1 commit>
<T3, C, 600, 700>
<T3, C, 700, 800>
<T3 commit>
<T2, C, 800, 900>
<T2, B, 400, 500>

2. 延迟修改技术 Deferred Database Modification

3. 立即修改技术 Immediate Database Modification

  1. 延迟修改技术仅在事务结束并提交后才能对数据库进行更新,而立即修改技术允许未结束的事务对数据库进行更新

    示例:

    • Output 表示向 Disk 输出的更新的块
    • 块的输出既可以在涉及的事务提交前进行,也可以在事务提交后进行
    • 块的输出和它们的更新顺序可能不同

    image.png

  2. 发生故障的恢复操作

    定义两种运算:

    示例:

    image.png

  3. 检查点 Checkpoint

    示例:

    image.png