Ch.07 数据库恢复技术

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 张

系统故障的恢复

系统故障造成数据库不一致的原因有两个
相关文档
最新文档