《数据库恢复》PPT课件
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库系统运行中发生故障,有些事务尚未 完成就被迫中断,这些未完成事务对数据库 所做的修改有一部分已写入物理数据库中
14
一致性(续)
一致性与原子性是密切相关的。
例:银行转帐:从帐号A中取出一万元,存入帐号B。 定义一个事务,该事务包括两个操作
第一个操作是从帐号A中减去一万元 第二个操作是向帐号B中加入一万元
11
三、事务的特性(ACID特性)
事务的ACID特性:
原子性(Atomicity) 一致性(Consistency) 隔离性(Isolation) 持续性(Durability )
12
1. 原子性
事务是数据库的逻辑工作单位
事务中包括的诸操作要么都做,要么都不做
13
2. 一致性
事务执行的结果必须是使数据库从一个 一致性状态变到另一个一致性状态。 一致性状态:数据库中只包含成功事务提交的结果 不一致状态:数据库中包含失败事务的结果
9
如何定义事务(续)
显式定义事务(续)
2. 事务结束(2) ROLLBACK
事务异常终止 回滚事务的所有操作
在事务运行的过程中发生了某种故障, 事务不能继续执行
系统将事务中对数据库的所有已完成 的更新操作全部撤消,滚回到事务开 始时的状态
10
10.1 事务的基本概念
一、什么是事务 二、如何定义事务 三、事务的特性
16
4. 持续性
持续性也称永久性(Permanence) 一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。 接下来的其他操作或故障不应该对其执行结果有任何影响。
17
事务的特性(续)
保证事务ACID特性是事务处理的重要任务。 破坏事务ACID特性的因素
多个事务并行运行时,不同事务的操作交叉执行
33
介质故障(续)
介质故障的恢复
装入数据库发生介质故障前某个时刻的数据副本 重做自此时始的所有成功事务,将这些事务已提交的结果重新记入数据
库
34
故障的种类小结
数据库系统中各类故障对数据库的影响 数据库本身被破坏(介质故障) 数据库处于不一致状态
数据库中包含了未完成事务对数据库的修改 (事务故障、系统故障)
1.静态转储与动态转储
静态转储
静态转储是在系统中无运行事务时进行的转储操作
转储操作开始的时刻,数据库处于一致性状 态
转储期间不允许(或不存在)对数据库的任 何存取、修改活动
静态转储得到的一定是一个数据一致性的副本
49
静态转储与动态转储(续)
静态转储的优点
实现简单
静态转储的缺点
降低了数据库的可用性 转储必须等待用户事务结束才能进行 新的事务必须等待转储结束才能执行
隐式方式
当用户没有显式地定义事务时,由DBMS按缺 省规定自动划分事务
7
如何定义事务(续)
显式定义事务
1. 事务开始 BEGIN TRANSACTION
8
如何定义事务(续)
显式定义事务(续)
2. 事务结束(1) COMMIT
事务正常结束 提交事务的所有操作
使事务中所有对数据库的更新永久生 效(保存在物理数据库中)。
36
第十章 数据库恢复技术
10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8
事务的基本概念 数据库恢复概述 故障的种类 恢复的实现技术 恢复策略 具有检查点的恢复技术 数据库镜像 小结
37
10.4 恢复的实现技术
恢复技术的原理
利用存储在系统其它地方的冗余数据来修复或重建 数据库中被破坏的或不正确的数据。
数据库中丢失了已提交事务对数据库的修改 (系统故障)
不同类型的故障应采用不同的恢复操作
35
故障的种类小结(续)
恢复操作的基本原理:简单 任何恢复操作的原理都是一样的 原理:利用存储在系统其它地方的冗余数据来重建数据库中已经被破坏 或已经不正确的那部分数据
恢复的实现技术:复杂 一般一个大型数据库产品,恢复子系统的代码要占全部代码的10%以上
10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8
事务的基本概念 数据库恢复概述 故障的种类 恢复的实现技术 恢复策略 具有检查点的恢复技术 数据库镜像 小结
22
10.3 故障的种类
事务故障 系统故障 介质故障
23
10.3 故障的种类
事务故障 系统故障 介质故障
运行事务
↓
─┼───────┼─────────────
Ta
Tb
Tf
恢复
重装后备副本 重新运行事务 ────────┴------------→
46
10.4.1 数据转储
一、什么是转储 二、转储的用途 三、转储方法
47
三、转储方法
1.静态转储与动态转储 2.海量转储与增量转储 3.转储方法小结
48
44
二、转储的用途
用途:供介质故障恢复时使用
一旦系统发生介质故障,数据库遭到破坏,可以将后备副本重新装入, 把数据库恢复起来。
恢复的程度
重装后备副本只能将DB恢复到转储时的状态 要想恢复到故障发生时的状态,必须重新运行自转储以后的所有更新
事务
45
转储的用途(续)
例:
正常运行
故障发生点
转储
事务的基本概念 数据库恢复概述 故障的种类 恢复的实现技术 恢复策略 具有检查点的恢复技术 数据库镜像 小结
19
10.2 数据库恢复概述
故障是不可避免的
计算机硬件故障 系统软件和应用软件的错误 操作员的失误 恶意的破坏
故障的影响
轻则造成运行事务非正常中断,影响数据库中数据的 正确性
重则破坏数据库,使数据库中数据部分或全部丢失。 例,银行转帐。
20
数据库恢复概述(续)
数据库管理系统对故障的对策
DBMS提供了恢复子系统,用来保证各种故障发生后,能把数据库中的数 据从错误状态恢复到某种逻辑一致的状态。即保证各个事务中的操作要 么全部完成,要么全部不做。
数据库系统所采用的恢复技术是否行之有效是衡 量系统性能优劣的重要指标。
21
第十章 数据库恢复技术
需要把动态转储期间各事务对数据库的修改 活动登记下来,建立日志文件
后备副本加上日志文件才能把数据库恢复到 某一时刻的正确状态
54
利用动态转储副本进行恢复
正常运行
Ta
Tb
Tf
动态转储
运行事务
故障发生点
─┼───────┼─────────────
登记日志文件 登记新日志文件
─────────┼─────────────
恢复机制涉及的关键问题
1. 如何建立冗余数据
数据转储 登记日志文件
2. 如何利用这些冗余数据实施数据库恢复
38
10.4 恢复的实现技术
10.4.1 数据转储 10.4.2 登记日志文件
39
10.4 恢复的实现技术
10.4.1 数据转储 10.4.2 登记日志文件
40
10.4.1 数据转储
发生系统故障时,内存中数据库缓冲区的信息全部丢失,但存储在外部 存储设备上的数据未受影响
28
系统故障(续)
系统故障的常见原因
操作系统或DBMS代码错误 操作员操作失误 特定类型的硬件错误(如CPU故障) 突然停电
29
系统故障(续)
系统故障的恢复
1. 清除尚未完成的事务对数据库的所有修改
这两个操作要么全做,要么全不做
全做或者全不做,数据库都处于一致பைடு நூலகம்状态。 如果只做一个操作则用户逻辑上就会发生错误,少了一万元,
这时数据库就处于不一致性状态。
15
3. 隔离性
一个事务的执行不能被其他事务干扰 一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行 的各个事务之间不能互相干扰。
恢复程序要在不影响其它事务运行的情况下, 强行回滚(ROLLBACK)该事务,即清除该事 务对数据库的所有修改,使得这个事务象根 本没有启动过一样
26
10.3 故障的种类
事务故障 系统故障 介质故障
27
二、系统故障
什么是系统故障
由于某种原因造成整个系统的正常运行突然停止,致使所有正在运行的 事务都以非正常方式终止。
一、什么是转储 二、转储的用途 三、转储方法
41
10.4.1 数据转储
一、什么是转储 二、转储的用途 三、转储方法
42
一、什么是转储
转储是指DBA将整个数据库复制到磁带或另一个磁 盘上保存起来的过程。
这些备用的数据文本称为后备副本或后援副本。
43
10.4.1 数据转储
一、什么是转储 二、转储的用途 三、转储方法
50
静态转储与动态转储(续)
利用静态转储得到的副本进行故障恢复
只需要把静态转储得到的后备副本装入,就 能把数据库恢复到转储时刻的正确状态
51
利用静态转储副本进行恢复
↓
正常运行
静态转储
故障发生点 运行事务
─┼───────┼─────────────
Ta
Tb
Tf
恢复
重装后备副本
━━━━━━┥
52
转储日志文件
恢复到一 致性状态
重装后备副本,然后利用转储的日志文件恢复
━━━━━━┥
55
2.海量转储与增量转储
海量转储
每次转储全部数据库
增量转储
只转储上次转储后更新过的数据
海量转储与增量转储比较
从恢复角度看,使用海量转储得到的后备副本进行恢复往往更方便 但如果数据库很大,事务处理又十分频繁,则增量转储方式更实用更有
第十章 数据库恢复技术
10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8
事务的基本概念 数据库恢复概述 故障的种类 恢复的实现技术 恢复策略 具有检查点的恢复技术 数据库镜像 小结
1
第十章 数据库恢复技术
10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8
24
一、事务故障
什么是事务故障 某个事务在运行过程中由于种种原因未运行至正常终止点就夭折了
事务故障的常见原因 输入数据有误 运算溢出 违反了某些完整性限制 某些应用程序出错 并行事务发生死锁
25
事务故障(续)
事务故障的恢复
发生事务故障时,夭折的事务可能已把对数据库的部分修改写回磁盘。 事务故障的恢复:事务撤消(UNDO)
事务的基本概念 数据库恢复概述 故障的种类 恢复的实现技术 恢复策略 具有检查点的恢复技术 数据库镜像 小结
2
10.1 事务的基本概念
一、什么是事务 二、如何定义事务 三、事务的特性
3
10.1 事务的基本概念
一、什么是事务 二、如何定义事务 三、事务的特性
4
一、什么是事务
事务(Transaction)是用户定义的一个数据库操作 序列,这些操作要么全做,要么全不做,是一个 不可分割的工作单位。
30
10.3 故障的种类
事务故障 系统故障 介质故障
31
三、介质故障
什么是介质故障 硬件故障使存储在外存中的数据部分丢失或全部丢失 介质故障比前两类故障的可能性小得多,但破坏性最大。
32
介质故障(续)
介质故障的常见原因 硬件故障
磁盘损坏 磁头碰撞
操作系统的某种潜在错误 瞬时强磁场干扰
如果DBMS无法确定哪些事务已更新过数据库,则系统重新启动后,恢 复程序要强行撤消(UNDO)所有未完成事务,使这些事务象没有运行 过一样。
2. 将缓冲区中已完成事务提交的结果写入数据库
如果DBMS无法确定哪些事务的提交结果尚未写入物理数据库,则系统 重新启动后,恢复程序需要重做(REDO)所有已提交的事务。
DBMS必须保证多个事务的交叉运行不影响这些事务ACID特性,特别是 原子性和隔离性
事务在运行过程中被强行停止
DBMS必须保证被强行终止的事务对数据库和其他事务没有任何影响
这些就是DBMS中恢复机制和并发控制机制的责 任。
18
第十章 数据库恢复技术
10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8
静态转储与动态转储(续)
动态转储
动态转储是指转储操作与用户事务并发进行,转储期间允许对数据库进 行存取或修改。
动态转储的优点
不用等待正在运行的用户事务结束 不会影响新事务的运行
动态转储的缺点
不能保证副本中的数据正确有效
53
静态转储与动态转储(续)
利用动态转储得到的副本进行故障恢复
效
56
3.转储方法小结
转储方法分类
事务和程序是两个概念
在关系数据库中,一个事务可以是一条SQL语句,一组 SQL语句或整个程序
一个应用程序通常包含多个事务
事务是恢复和并发控制的基本单位
5
10.1 事务的基本概念
一、什么是事务 二、如何定义事务 三、事务的特性
6
二、如何定义事务
定义事务的两种方式
显式方式
事务的开始由用户显式控制或DBMS自动隐含 事务结束由用户显式控制
14
一致性(续)
一致性与原子性是密切相关的。
例:银行转帐:从帐号A中取出一万元,存入帐号B。 定义一个事务,该事务包括两个操作
第一个操作是从帐号A中减去一万元 第二个操作是向帐号B中加入一万元
11
三、事务的特性(ACID特性)
事务的ACID特性:
原子性(Atomicity) 一致性(Consistency) 隔离性(Isolation) 持续性(Durability )
12
1. 原子性
事务是数据库的逻辑工作单位
事务中包括的诸操作要么都做,要么都不做
13
2. 一致性
事务执行的结果必须是使数据库从一个 一致性状态变到另一个一致性状态。 一致性状态:数据库中只包含成功事务提交的结果 不一致状态:数据库中包含失败事务的结果
9
如何定义事务(续)
显式定义事务(续)
2. 事务结束(2) ROLLBACK
事务异常终止 回滚事务的所有操作
在事务运行的过程中发生了某种故障, 事务不能继续执行
系统将事务中对数据库的所有已完成 的更新操作全部撤消,滚回到事务开 始时的状态
10
10.1 事务的基本概念
一、什么是事务 二、如何定义事务 三、事务的特性
16
4. 持续性
持续性也称永久性(Permanence) 一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。 接下来的其他操作或故障不应该对其执行结果有任何影响。
17
事务的特性(续)
保证事务ACID特性是事务处理的重要任务。 破坏事务ACID特性的因素
多个事务并行运行时,不同事务的操作交叉执行
33
介质故障(续)
介质故障的恢复
装入数据库发生介质故障前某个时刻的数据副本 重做自此时始的所有成功事务,将这些事务已提交的结果重新记入数据
库
34
故障的种类小结
数据库系统中各类故障对数据库的影响 数据库本身被破坏(介质故障) 数据库处于不一致状态
数据库中包含了未完成事务对数据库的修改 (事务故障、系统故障)
1.静态转储与动态转储
静态转储
静态转储是在系统中无运行事务时进行的转储操作
转储操作开始的时刻,数据库处于一致性状 态
转储期间不允许(或不存在)对数据库的任 何存取、修改活动
静态转储得到的一定是一个数据一致性的副本
49
静态转储与动态转储(续)
静态转储的优点
实现简单
静态转储的缺点
降低了数据库的可用性 转储必须等待用户事务结束才能进行 新的事务必须等待转储结束才能执行
隐式方式
当用户没有显式地定义事务时,由DBMS按缺 省规定自动划分事务
7
如何定义事务(续)
显式定义事务
1. 事务开始 BEGIN TRANSACTION
8
如何定义事务(续)
显式定义事务(续)
2. 事务结束(1) COMMIT
事务正常结束 提交事务的所有操作
使事务中所有对数据库的更新永久生 效(保存在物理数据库中)。
36
第十章 数据库恢复技术
10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8
事务的基本概念 数据库恢复概述 故障的种类 恢复的实现技术 恢复策略 具有检查点的恢复技术 数据库镜像 小结
37
10.4 恢复的实现技术
恢复技术的原理
利用存储在系统其它地方的冗余数据来修复或重建 数据库中被破坏的或不正确的数据。
数据库中丢失了已提交事务对数据库的修改 (系统故障)
不同类型的故障应采用不同的恢复操作
35
故障的种类小结(续)
恢复操作的基本原理:简单 任何恢复操作的原理都是一样的 原理:利用存储在系统其它地方的冗余数据来重建数据库中已经被破坏 或已经不正确的那部分数据
恢复的实现技术:复杂 一般一个大型数据库产品,恢复子系统的代码要占全部代码的10%以上
10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8
事务的基本概念 数据库恢复概述 故障的种类 恢复的实现技术 恢复策略 具有检查点的恢复技术 数据库镜像 小结
22
10.3 故障的种类
事务故障 系统故障 介质故障
23
10.3 故障的种类
事务故障 系统故障 介质故障
运行事务
↓
─┼───────┼─────────────
Ta
Tb
Tf
恢复
重装后备副本 重新运行事务 ────────┴------------→
46
10.4.1 数据转储
一、什么是转储 二、转储的用途 三、转储方法
47
三、转储方法
1.静态转储与动态转储 2.海量转储与增量转储 3.转储方法小结
48
44
二、转储的用途
用途:供介质故障恢复时使用
一旦系统发生介质故障,数据库遭到破坏,可以将后备副本重新装入, 把数据库恢复起来。
恢复的程度
重装后备副本只能将DB恢复到转储时的状态 要想恢复到故障发生时的状态,必须重新运行自转储以后的所有更新
事务
45
转储的用途(续)
例:
正常运行
故障发生点
转储
事务的基本概念 数据库恢复概述 故障的种类 恢复的实现技术 恢复策略 具有检查点的恢复技术 数据库镜像 小结
19
10.2 数据库恢复概述
故障是不可避免的
计算机硬件故障 系统软件和应用软件的错误 操作员的失误 恶意的破坏
故障的影响
轻则造成运行事务非正常中断,影响数据库中数据的 正确性
重则破坏数据库,使数据库中数据部分或全部丢失。 例,银行转帐。
20
数据库恢复概述(续)
数据库管理系统对故障的对策
DBMS提供了恢复子系统,用来保证各种故障发生后,能把数据库中的数 据从错误状态恢复到某种逻辑一致的状态。即保证各个事务中的操作要 么全部完成,要么全部不做。
数据库系统所采用的恢复技术是否行之有效是衡 量系统性能优劣的重要指标。
21
第十章 数据库恢复技术
需要把动态转储期间各事务对数据库的修改 活动登记下来,建立日志文件
后备副本加上日志文件才能把数据库恢复到 某一时刻的正确状态
54
利用动态转储副本进行恢复
正常运行
Ta
Tb
Tf
动态转储
运行事务
故障发生点
─┼───────┼─────────────
登记日志文件 登记新日志文件
─────────┼─────────────
恢复机制涉及的关键问题
1. 如何建立冗余数据
数据转储 登记日志文件
2. 如何利用这些冗余数据实施数据库恢复
38
10.4 恢复的实现技术
10.4.1 数据转储 10.4.2 登记日志文件
39
10.4 恢复的实现技术
10.4.1 数据转储 10.4.2 登记日志文件
40
10.4.1 数据转储
发生系统故障时,内存中数据库缓冲区的信息全部丢失,但存储在外部 存储设备上的数据未受影响
28
系统故障(续)
系统故障的常见原因
操作系统或DBMS代码错误 操作员操作失误 特定类型的硬件错误(如CPU故障) 突然停电
29
系统故障(续)
系统故障的恢复
1. 清除尚未完成的事务对数据库的所有修改
这两个操作要么全做,要么全不做
全做或者全不做,数据库都处于一致பைடு நூலகம்状态。 如果只做一个操作则用户逻辑上就会发生错误,少了一万元,
这时数据库就处于不一致性状态。
15
3. 隔离性
一个事务的执行不能被其他事务干扰 一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行 的各个事务之间不能互相干扰。
恢复程序要在不影响其它事务运行的情况下, 强行回滚(ROLLBACK)该事务,即清除该事 务对数据库的所有修改,使得这个事务象根 本没有启动过一样
26
10.3 故障的种类
事务故障 系统故障 介质故障
27
二、系统故障
什么是系统故障
由于某种原因造成整个系统的正常运行突然停止,致使所有正在运行的 事务都以非正常方式终止。
一、什么是转储 二、转储的用途 三、转储方法
41
10.4.1 数据转储
一、什么是转储 二、转储的用途 三、转储方法
42
一、什么是转储
转储是指DBA将整个数据库复制到磁带或另一个磁 盘上保存起来的过程。
这些备用的数据文本称为后备副本或后援副本。
43
10.4.1 数据转储
一、什么是转储 二、转储的用途 三、转储方法
50
静态转储与动态转储(续)
利用静态转储得到的副本进行故障恢复
只需要把静态转储得到的后备副本装入,就 能把数据库恢复到转储时刻的正确状态
51
利用静态转储副本进行恢复
↓
正常运行
静态转储
故障发生点 运行事务
─┼───────┼─────────────
Ta
Tb
Tf
恢复
重装后备副本
━━━━━━┥
52
转储日志文件
恢复到一 致性状态
重装后备副本,然后利用转储的日志文件恢复
━━━━━━┥
55
2.海量转储与增量转储
海量转储
每次转储全部数据库
增量转储
只转储上次转储后更新过的数据
海量转储与增量转储比较
从恢复角度看,使用海量转储得到的后备副本进行恢复往往更方便 但如果数据库很大,事务处理又十分频繁,则增量转储方式更实用更有
第十章 数据库恢复技术
10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8
事务的基本概念 数据库恢复概述 故障的种类 恢复的实现技术 恢复策略 具有检查点的恢复技术 数据库镜像 小结
1
第十章 数据库恢复技术
10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8
24
一、事务故障
什么是事务故障 某个事务在运行过程中由于种种原因未运行至正常终止点就夭折了
事务故障的常见原因 输入数据有误 运算溢出 违反了某些完整性限制 某些应用程序出错 并行事务发生死锁
25
事务故障(续)
事务故障的恢复
发生事务故障时,夭折的事务可能已把对数据库的部分修改写回磁盘。 事务故障的恢复:事务撤消(UNDO)
事务的基本概念 数据库恢复概述 故障的种类 恢复的实现技术 恢复策略 具有检查点的恢复技术 数据库镜像 小结
2
10.1 事务的基本概念
一、什么是事务 二、如何定义事务 三、事务的特性
3
10.1 事务的基本概念
一、什么是事务 二、如何定义事务 三、事务的特性
4
一、什么是事务
事务(Transaction)是用户定义的一个数据库操作 序列,这些操作要么全做,要么全不做,是一个 不可分割的工作单位。
30
10.3 故障的种类
事务故障 系统故障 介质故障
31
三、介质故障
什么是介质故障 硬件故障使存储在外存中的数据部分丢失或全部丢失 介质故障比前两类故障的可能性小得多,但破坏性最大。
32
介质故障(续)
介质故障的常见原因 硬件故障
磁盘损坏 磁头碰撞
操作系统的某种潜在错误 瞬时强磁场干扰
如果DBMS无法确定哪些事务已更新过数据库,则系统重新启动后,恢 复程序要强行撤消(UNDO)所有未完成事务,使这些事务象没有运行 过一样。
2. 将缓冲区中已完成事务提交的结果写入数据库
如果DBMS无法确定哪些事务的提交结果尚未写入物理数据库,则系统 重新启动后,恢复程序需要重做(REDO)所有已提交的事务。
DBMS必须保证多个事务的交叉运行不影响这些事务ACID特性,特别是 原子性和隔离性
事务在运行过程中被强行停止
DBMS必须保证被强行终止的事务对数据库和其他事务没有任何影响
这些就是DBMS中恢复机制和并发控制机制的责 任。
18
第十章 数据库恢复技术
10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8
静态转储与动态转储(续)
动态转储
动态转储是指转储操作与用户事务并发进行,转储期间允许对数据库进 行存取或修改。
动态转储的优点
不用等待正在运行的用户事务结束 不会影响新事务的运行
动态转储的缺点
不能保证副本中的数据正确有效
53
静态转储与动态转储(续)
利用动态转储得到的副本进行故障恢复
效
56
3.转储方法小结
转储方法分类
事务和程序是两个概念
在关系数据库中,一个事务可以是一条SQL语句,一组 SQL语句或整个程序
一个应用程序通常包含多个事务
事务是恢复和并发控制的基本单位
5
10.1 事务的基本概念
一、什么是事务 二、如何定义事务 三、事务的特性
6
二、如何定义事务
定义事务的两种方式
显式方式
事务的开始由用户显式控制或DBMS自动隐含 事务结束由用户显式控制