Ch.07 数据库恢复技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
•
系统自动设置检查点( checkpoint )
将数据库缓冲区的内容强制写入( force writing ) 物理数据库 将一检查点记录( checkpoint record )写入物理日 志, 该记录包含设置检查点时正在运行的事务列 表
©Yongjun Chen 2013-6-28
数据库系统概论
©Yongjun Chen 2013-6-28
数据库系Leabharlann Baidu概论
第7章
第2张
事务管理
•
恢复和并发控制是事务管理的两个重要组成部分
事务
•
•
用户定义的一个数据库操作序列, 这些操作要么全 做要么不做, 是一个不可分割的逻辑工作单元 在SQL语言中, 定义事务的语句有三条
BEGIN TRANSACTION COMMIT ROLLBACK
未完成事务对数据库的更新可能已经写进数据库 已提交的事务对数据库的更新可能还留在缓冲区 没来得及写入数据库
•
恢复操作
撤消故障发生时未完成的事务 重做已完成的事务
©Yongjun Chen 2013-6-28
数据库系统概论
第7章
第 14 张
7.6 具有检查点的恢复技术
系统在重启时怎么知道哪些事务该撤消, 哪些事务该重做呢?
事务一旦提交, 它对数据库数据的改变是永久的
数据库系统概论 第7章 第4张
•
持续性 (Durability)
©Yongjun Chen 2013-6-28
7.2 数据库恢复概述
数据库的安全性和完整性被破坏是不可 避免的 数据库系统中的恢复主要指恢复数据库 本身, 即在故障引起数据库当前状态不一 致后将数据库恢复到某个正确状态或一 致状态 数据库系统的恢复技术是衡量系统性能 优劣的重要指标
©Yongjun Chen 2013-6-28
数据库系统概论
第7章
第3张
事务的特性(ACID)
•
原子性 (Atomicity)
事务是原子的, 要么都做, 要么都不做 事务保证了数据库的一致性
•
一致性 (Consistency)
•
隔离性 (Isolation)
事务相互隔离. 并发执行的事务之间不能互相干 扰
数据库系统概论 第7章 第9张
恢复涉及的两个问题
• •
建立冗余数据的常用技术
• •
©Yongjun Chen 2013-6-28
7.4.1 数据转储
数据转储实际就是数据备份
故障发生点
正常运行
转储
运行事务 T2 重新运行事务 T3
T1
重装后备副本
恢
复
©Yongjun Chen 2013-6-28
事务标识, 操作的类型, 操作对象, 更新前后数据的旧值和新值
作用
• •
用于事务故障和系统故障的恢复 数据转储的副本和日志文件结合起来才能有效地恢复数据库 登记的次序严格按照并发事物执行的时间次序 先写日志文件的原则
登记日志文件的原则
• •
©Yongjun Chen 2013-6-28
数据库系统概论
第七章 数据库恢复技术
数据库系统概论(第三版) 萨师煊 王珊 高等教育出版社 2000.2
7.1 事务的基本概念
BEGIN TRANSACTION --撤消某个部门 DELETE FROM DEPT WHERE DEPTNO = '部门号'; IF any error occurred THEN go to UNDO; END IF; -- 删除与该部门有关的职工信息 DELETE FROM EMP WHERE DEPTNO = '部门号' IF any error occurred THEN go to UNDO; END IF; COMMIT; go to finish; UNDO: ROLLBACK; FINISH: RETURN;
数据库系统概论 第7章 第5张
©Yongjun Chen 2013-6-28
7.3 故障的种类
事务内部的故障
•
可以通过事务程序本身发现的
在编写程序时应该进行的检测 这是我们讨论的重点 如运算溢出等 并发事务发生死锁而引起的
•
非预期的, 不能由事务程序处理的
•
事务故障即该事务没有达到预期的终点, 要 执行强行回滚, 撤消该事务(UNDO)
数据库系统概论 第7章 第 17 张
©Yongjun Chen 2013-6-28
7.7 数据库镜像
数据库镜像—备份的磁盘
•
DBMS将整个数据库或关键数据复制到另一 个磁盘上, 每当主数据库更新时, DBMS自动 把数据复制过去, 保证镜像数据与主数据一 致
当主盘发生介质故障, 镜像磁盘可以继续 提供使用, 而且不必关闭系统 数据库镜像还可用于并发操作
第7章
第 15 张
tc 事 务 T3
T4 T5 检查点(时间tc) T1 T2
tf
时间
系统失效(时间tf)
T3和T5应该撤消; T2和T4必须重做; 恢复不涉及T1, 因为检查点前已被强制写入数据库中.
©Yongjun Chen 2013-6-28
数据库系统概论
第7章
第 16 张
在系统重启时, 按照下列步骤标识T2 ~ T5事务
数据库系统概论
第7章
第 10 张
•
静态转储
在系统中无运行事务时进行
•
动态转储
系统中可以有事务运行
• •
海量转储 增量转储
©Yongjun Chen 2013-6-28
数据库系统概论
第7章
第 11 张
7.4.2登记日志文件
内容
• • •
BEGIN TRANSACTION 标记 COMMIT 或 ROLLBACK 标记 所有更新操作
数据库系统概论 第7章 第6张
©Yongjun Chen 2013-6-28
系统故障
• •
•
•
使系统停止运转, 必须重新启动的故障 内存和数据库缓冲区的内容全部丢失, 但部 分结果可能已经送入物理数据库 系统重新启动时, 必须回滚非正常终止的事 务, 强行撤消所有未完成的事务 对已提交, 但仍只留在缓冲区而没有写到磁 盘上的事务要重做
•
1) 首先设置两个事务列表: UNDO 和 REDO
UNDO列表为最近一个检查点记录所包含的所有事务 REDO列表为空
•
•
•
•
2) 从检查点记录开始, 对日志进行正向扫描 3) 如果遇到事务T的BEGIN TRANSACTION日志登 记项, 则将T加入UNDO列表 4) 如果遇到事务T的COMMIT日志登记项, 则将T从 UNDO列表移到REDO列表 5) 当日志扫描结束时, UNDO列表和REDO列表分别 标识了需撤消的T3和T5事务, 以及需重做的T2和T4 事务
©Yongjun Chen 2013-6-28
数据库系统概论
第7章
第7张
介质故障
• •
•
指外存故障 破坏数据库或部分数据库 破坏性大
计算机病毒
©Yongjun Chen 2013-6-28
数据库系统概论
第7章
第8张
7.4 恢复的实现技术
恢复的基本原理: 冗余
•
根据存储在系统别处的冗余数据来重建 如何建立冗余数据 如何利用冗余数据 数据转储 登记日志文件
数据库系统概论 第7章 第 18 张
©Yongjun Chen 2013-6-28
第7章
第 12 张
7.5 恢复策略
事务故障的恢复
• •
利用日志文件撤消此事务对数据库的修改 恢复步骤
反向扫描文件日志, 查找该事务的更新操作 对该事务的所有更新操作分别执行逆操作
©Yongjun Chen 2013-6-28
数据库系统概论
第7章
第 13 张
系统故障的恢复
•
系统故障造成数据库不一致的原因有两个
系统自动设置检查点( checkpoint )
将数据库缓冲区的内容强制写入( force writing ) 物理数据库 将一检查点记录( checkpoint record )写入物理日 志, 该记录包含设置检查点时正在运行的事务列 表
©Yongjun Chen 2013-6-28
数据库系统概论
©Yongjun Chen 2013-6-28
数据库系Leabharlann Baidu概论
第7章
第2张
事务管理
•
恢复和并发控制是事务管理的两个重要组成部分
事务
•
•
用户定义的一个数据库操作序列, 这些操作要么全 做要么不做, 是一个不可分割的逻辑工作单元 在SQL语言中, 定义事务的语句有三条
BEGIN TRANSACTION COMMIT ROLLBACK
未完成事务对数据库的更新可能已经写进数据库 已提交的事务对数据库的更新可能还留在缓冲区 没来得及写入数据库
•
恢复操作
撤消故障发生时未完成的事务 重做已完成的事务
©Yongjun Chen 2013-6-28
数据库系统概论
第7章
第 14 张
7.6 具有检查点的恢复技术
系统在重启时怎么知道哪些事务该撤消, 哪些事务该重做呢?
事务一旦提交, 它对数据库数据的改变是永久的
数据库系统概论 第7章 第4张
•
持续性 (Durability)
©Yongjun Chen 2013-6-28
7.2 数据库恢复概述
数据库的安全性和完整性被破坏是不可 避免的 数据库系统中的恢复主要指恢复数据库 本身, 即在故障引起数据库当前状态不一 致后将数据库恢复到某个正确状态或一 致状态 数据库系统的恢复技术是衡量系统性能 优劣的重要指标
©Yongjun Chen 2013-6-28
数据库系统概论
第7章
第3张
事务的特性(ACID)
•
原子性 (Atomicity)
事务是原子的, 要么都做, 要么都不做 事务保证了数据库的一致性
•
一致性 (Consistency)
•
隔离性 (Isolation)
事务相互隔离. 并发执行的事务之间不能互相干 扰
数据库系统概论 第7章 第9张
恢复涉及的两个问题
• •
建立冗余数据的常用技术
• •
©Yongjun Chen 2013-6-28
7.4.1 数据转储
数据转储实际就是数据备份
故障发生点
正常运行
转储
运行事务 T2 重新运行事务 T3
T1
重装后备副本
恢
复
©Yongjun Chen 2013-6-28
事务标识, 操作的类型, 操作对象, 更新前后数据的旧值和新值
作用
• •
用于事务故障和系统故障的恢复 数据转储的副本和日志文件结合起来才能有效地恢复数据库 登记的次序严格按照并发事物执行的时间次序 先写日志文件的原则
登记日志文件的原则
• •
©Yongjun Chen 2013-6-28
数据库系统概论
第七章 数据库恢复技术
数据库系统概论(第三版) 萨师煊 王珊 高等教育出版社 2000.2
7.1 事务的基本概念
BEGIN TRANSACTION --撤消某个部门 DELETE FROM DEPT WHERE DEPTNO = '部门号'; IF any error occurred THEN go to UNDO; END IF; -- 删除与该部门有关的职工信息 DELETE FROM EMP WHERE DEPTNO = '部门号' IF any error occurred THEN go to UNDO; END IF; COMMIT; go to finish; UNDO: ROLLBACK; FINISH: RETURN;
数据库系统概论 第7章 第5张
©Yongjun Chen 2013-6-28
7.3 故障的种类
事务内部的故障
•
可以通过事务程序本身发现的
在编写程序时应该进行的检测 这是我们讨论的重点 如运算溢出等 并发事务发生死锁而引起的
•
非预期的, 不能由事务程序处理的
•
事务故障即该事务没有达到预期的终点, 要 执行强行回滚, 撤消该事务(UNDO)
数据库系统概论 第7章 第 17 张
©Yongjun Chen 2013-6-28
7.7 数据库镜像
数据库镜像—备份的磁盘
•
DBMS将整个数据库或关键数据复制到另一 个磁盘上, 每当主数据库更新时, DBMS自动 把数据复制过去, 保证镜像数据与主数据一 致
当主盘发生介质故障, 镜像磁盘可以继续 提供使用, 而且不必关闭系统 数据库镜像还可用于并发操作
第7章
第 15 张
tc 事 务 T3
T4 T5 检查点(时间tc) T1 T2
tf
时间
系统失效(时间tf)
T3和T5应该撤消; T2和T4必须重做; 恢复不涉及T1, 因为检查点前已被强制写入数据库中.
©Yongjun Chen 2013-6-28
数据库系统概论
第7章
第 16 张
在系统重启时, 按照下列步骤标识T2 ~ T5事务
数据库系统概论
第7章
第 10 张
•
静态转储
在系统中无运行事务时进行
•
动态转储
系统中可以有事务运行
• •
海量转储 增量转储
©Yongjun Chen 2013-6-28
数据库系统概论
第7章
第 11 张
7.4.2登记日志文件
内容
• • •
BEGIN TRANSACTION 标记 COMMIT 或 ROLLBACK 标记 所有更新操作
数据库系统概论 第7章 第6张
©Yongjun Chen 2013-6-28
系统故障
• •
•
•
使系统停止运转, 必须重新启动的故障 内存和数据库缓冲区的内容全部丢失, 但部 分结果可能已经送入物理数据库 系统重新启动时, 必须回滚非正常终止的事 务, 强行撤消所有未完成的事务 对已提交, 但仍只留在缓冲区而没有写到磁 盘上的事务要重做
•
1) 首先设置两个事务列表: UNDO 和 REDO
UNDO列表为最近一个检查点记录所包含的所有事务 REDO列表为空
•
•
•
•
2) 从检查点记录开始, 对日志进行正向扫描 3) 如果遇到事务T的BEGIN TRANSACTION日志登 记项, 则将T加入UNDO列表 4) 如果遇到事务T的COMMIT日志登记项, 则将T从 UNDO列表移到REDO列表 5) 当日志扫描结束时, UNDO列表和REDO列表分别 标识了需撤消的T3和T5事务, 以及需重做的T2和T4 事务
©Yongjun Chen 2013-6-28
数据库系统概论
第7章
第7张
介质故障
• •
•
指外存故障 破坏数据库或部分数据库 破坏性大
计算机病毒
©Yongjun Chen 2013-6-28
数据库系统概论
第7章
第8张
7.4 恢复的实现技术
恢复的基本原理: 冗余
•
根据存储在系统别处的冗余数据来重建 如何建立冗余数据 如何利用冗余数据 数据转储 登记日志文件
数据库系统概论 第7章 第 18 张
©Yongjun Chen 2013-6-28
第7章
第 12 张
7.5 恢复策略
事务故障的恢复
• •
利用日志文件撤消此事务对数据库的修改 恢复步骤
反向扫描文件日志, 查找该事务的更新操作 对该事务的所有更新操作分别执行逆操作
©Yongjun Chen 2013-6-28
数据库系统概论
第7章
第 13 张
系统故障的恢复
•
系统故障造成数据库不一致的原因有两个