思维导图:
10.5 恢复策略
10.5.1 事务故障的恢复
- 故障定义:事务在达到正常终止点前被终止。
- 恢复步骤:
- 反向扫描日志文件,找出事务的更新操作。
- 对更新操作执行逆操作,即用日志中的“更新前值”恢复数据。
- 持续反向扫描直至事务开始标记,完成恢复。
10.5.2 系统故障的恢复
- 故障原因:未完成事务的更新可能已写入数据库,或已提交事务的更新尚未写入数据库。
- 恢复步骤:
- 正向扫描日志文件,创建重做(REDO)和撤销(UNDO)队列。
- 对撤销队列中的事务进行UNDO处理。
- 对重做队列中的事务进行REDO处理。
10.5.3 介质故障的恢复
- 故障严重性:最严重的故障,磁盘上的物理数据和日志文件可能被破坏。
- 恢复方法:
- 重装最近的数据库后备副本,恢复到最近一次转储时的状态。
- 装入相应的日志文件副本,重做已完成的事务。
- 恢复至故障前的一致状态。
注意点
- 理解不同类型故障的恢复方法:每种故障类型有其特定的恢复步骤和策略。
- 日志文件的重要性:在所有类型的恢复中,日志文件都发挥着核心作用。
- 自动与手动恢复:事务故障和系统故障通常由系统自动完成,而介质故障可能需要数据库管理员的介入。
易错点
- 混淆不同故障的恢复步骤:可能会混淆事务故障、系统故障和介质故障的恢复步骤和方法。
- 忽视日志文件的作用:在恢复过程中可能会忽视日志文件的重要性,特别是在系统故障和介质故障的恢复中。
- 操作顺序的误解:可能会错误地理解重做(REDO)和撤销(UNDO)操作的顺序和逻辑。
重点
- 事务故障恢复:利用日志文件反向扫描和执行逆操作以撤销事务已进行的修改。
- 系统故障恢复:涉及重做(已提交事务)和撤销(未完成事务)操作,通过日志文件正向扫描实现。
- 介质故障恢复:最严重的故障类型,需要重新装载数据库后备副本和日志文件,进行重做操作恢复到故障前的状态。
难点
- 理解不同故障类型的恢复过程:区分事务故障、系统故障和介质故障的恢复步骤和逻辑。
- 日志文件在恢复中的应用:理解如何正确使用日志文件进行反向和正向扫描以及逆操作和重做操作。
- 介质故障恢复的复杂性:理解在介质故障情况下恢复数据库的复杂过程,包括恢复副本和日志文件的重载及处理。
易错点
- 混淆不同类型故障的恢复策略:可能会将事务故障和系统故障的恢复策略混淆,特别是在使用日志文件的过程中。
- 恢复步骤的顺序错误:在事务故障和系统故障恢复中,可能会错误地应用逆操作和重做操作的顺序。
- 忽略介质故障的恢复复杂性:可能会低估介质故障恢复的复杂性,尤其是在涉及后备副本和日志文件的重载时。
这一节内容的核心是理解数据库在不同类型的故障情况下如何进行有效的恢复,以保证数据的一致性和完整性。掌握每种故障的具体恢复策略对于维护数据库系统的稳定性和可靠性是至关重要的。