#第十章.数据库恢复技术
1. 事务:是用户定义的一个数据库操作序列,这些操作要么全做,要么不做,是一个不可分割的工作单位。是DBMS基本单位
2. 事务的ACID特性
- 原子性:事务中的诸操作要么都做要么都不做
- 一致性:事务执行的结果必须使数据库从一个一致性状态变到另一个一致性状态
- 隔离性:一个事物内部操作及其使用的数据对其他并发事务是隔离的
- 持久性:事务一提交对数据库的改变是永久的。
一致性状态:数据库只包含成功事务提交的结果
3. 故障的种类:
- 事务内部的故障:事务在运行过程中由于种种原因使事务未运行到正常终止点就被撤销
- 系统故障:系统意外停止运行,致使事务执行过程以非控制的方式终止。内存信息丢失,外存数据未受影响
- 介质故障:硬件故障导致存在外存的数据部分损失或全部损失
- 计算机病毒
4.数据库恢复概述:数据库恢复是将数据库从错误状态恢复到某一已知的正确状态的功能
数据库恢复技术:建立冗余数据,利用冗余数据实施数据库恢复。
5. 建立冗余数据最常用的技术
- 数据转储
- 登记日志文件
6. 数据转储:保存所有信息
是数据库恢复中采用的基本技术
分为4类:动态海量转储、动态增量转储、静态海量转储、静态增量转储
保存的备用数据称为:后备副本(后援副本)
7. 登记日志文件:记录事务对数据库的更新操作
记录事务对数据库的更新操作的文件: 日志文件
日志文件可以进行事务故障恢复和系统故障恢复,协助后备副本进行介质故障恢复。
(行事务故障恢复和系统故障恢复必须用日志文件、动态转储方式必须建立日志文件)
8. 恢复策略
- 事务故障的恢复:利用日志文件撤销(UNDO)此事务的修改。反向扫描日志文件,直到读到此事务开始标记。由系统自动完成,对用户透明。
- 系统故障的恢复:
- 一是正向扫描日志文件,对已经提交的事务的标识别放入重做队列,将尚未完成的事务标识放入撤销队列。
- 二是对撤销队列的各个事务进行撤销(UNDO)。
- 三是对重做队列中的事务进行重做处理(REDO)。
- 介质故障的恢复
- 一是装入最新的后备副本,使数据库恢复到最近的一致性状态
- 二是装入相应的日志文件(这次转储后的),首先找出故障发生时已提交的事务标识,将其记入重做队列,然后正向扫描日志文件,对重做队列中的所有事务重做。
9. 具有检查点的恢复技术–解决之前搜索日志文件耗时、重新执行已经写入数据库的事务耗时的问题
这种技术在日志文件中增加了检查点记录,增加了一个重新开始文件
检查点记录的内容:
- 1.建立检查点时所有正在执行的事务清单
- 2.这些事务最近的一个日志记录的地址
重新开始文件:记录检查点记录在日志文件的地址
恢复的步骤:
- 一是由重新开始文件找到最新的检查点记录
- 二是由检查点记录找到所有正在执行的事务清单。建立UNDO-LIST和REDO-LIST。将所有正在执行的事务放任UNDO-LIST
- 三是从检查点开始正向扫描日志文件。新开始的事务放入UNDO-LIST,已提交的事务放入REDO-LIST
- 四是重做REDO-LIST中的事务,撤销UNDO-LIST中的事务。