第12 讲 数据库的备份与恢复

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
– 原子性 原子性(Atomicity)
事务中包含的所有操作要么全做,要么全不做。 事务中包含的所有操作要么全做,要么全不做。
– 一致性 一致性(Consistency)
事务的隔离执行必须保证数据库的一致性。 事务的隔离执行必须保证数据库的一致性。 事务开始前,数据库处于一致性的状态; 事务开始前,数据库处于一致性的状态;事务结 束后,数据库必须仍处于一致性状态。 束后,数据库必须仍处于一致性状态。
– 持久性 持久性(Durability)
一个事务一旦提交之后Байду номын сангаас 一个事务一旦提交之后,它对数据库的影响必须是 永久的。 永久的。
事务状态
部分 提交状态 提交状态
活动状态
最后一条语 句被执行后
成功完成,永 成功完成, 久写入数据库
失败状态
初始状态 事务无法继 续正常执行
中止状态
事务回滚, 事务回滚,数据库恢 复到事务开始前状态

- 日志
日志文件是用来记录数据库的每一次更新活动的 文件,由系统自动记录。 文件,由系统自动记录。 日志内容包括:记录名、旧记录值、新记录值、 ● 日志内容包括:记录名、旧记录值、新记录值、 事务标识符、操作标识符等。 事务标识符、操作标识符等。

– 基本的恢复操作: 基本的恢复操作:
对圆满事务所做过的修改操作应执行redo操作, 操作, 对圆满事务所做过的修改操作应执行 操作 即重新执行该操作, 即重新执行该操作,修改对象被赋予新记录 值。 对夭折事务所做过的修改操作应执行undo操 对夭折事务所做过的修改操作应执行undo操 即撤消该操作, 作,即撤消该操作,修改对象被赋予旧记录 值。
系统故障的恢复 a.正向扫描日志文件,找出故障发生前已提交的事务, 正向扫描日志文件, 正向扫描日志文件 找出故障发生前已提交的事务, 将其放入重做( 将其放入重做(REDO)队列;找出故障发生前未 )队列; 提交的事务,将其放入撤消( 提交的事务,将其放入撤消(UNDO)队列。 )队列。 b.对撤消(UNDO)队列中的事务进行撤消处理。 对撤消( 对撤消 )队列中的事务进行撤消处理。 c.对重做(REDO)队列中的事务进行重做处理。 对重做( 对重做 )队列中的事务进行重做处理。 介质故障的恢复 a.装入数据库备份和日志文件备份。 装入数据库备份和日志文件备份。 装入数据库备份和日志文件备份 b.重做已完成的事务。 重做已完成的事务。 重做已完成的事务
2、日志文件 、 日志文件的格式和内容 日志文件是用来记录事务对数据库的更新操作 的文件。不同数据库系统采用的日志文件格式并不 的文件。 完全一样。 完全一样。
每个日志记录的内容主要包括: 每个日志记录的内容主要包括: 标明是哪个事务) 事务标识 (标明是哪个事务 标明是哪个事务 操作的类型(插入、删除或修改 操作的类型 插入、删除或修改) 插入 操作对象(记录内部标识 操作对象 记录内部标识) 记录内部标识 更新前数据的旧值 (对插入操作而言,此项为空值 对插入操作而言, 对插入操作而言 此项为空值) 对删除操作而, 更新后数据的新值 (对删除操作而,此项为空值 对删除操作而 此项为空值)
具有检查点 具有检查点(checkpoint)的恢复技术 检查点 的恢复技术 问题的提出:在执行恢复操作时, 问题的提出:在执行恢复操作时,需要扫描整个日志 文件,有可能重复执行某些操作。 文件,有可能重复执行某些操作。 检查点的用途是在磁盘上建立事务处理一致性的标志。 检查点的用途是在磁盘上建立事务处理一致性的标志。 技术原理:在日志文件中增加一类新记录,检查点; 技术原理:在日志文件中增加一类新记录,检查点; 增加一个重新开始文件; 增加一个重新开始文件; 恢复子系统动态维护日志。 恢复子系统动态维护日志。
begin transaction select * from teacher; update teacher set title=null where tno=101; select * from teacher; rollback; select * from teacher;
事务特性(ACID) 事务特性
– 隔离性 隔离性(Isolation)
系统必须保证事务不受其它并发执行事务的影响。 系统必须保证事务不受其它并发执行事务的影响。 看来, 要么在T 对任何一对事务T 对任何一对事务 1,T2,在T1看来,T2要么在 1开 始之前已经结束,要么在T 完成之后再开始执行。 始之前已经结束,要么在 1完成之后再开始执行。 隔离性通过并发控制机制实现。 隔离性通过并发控制机制实现。
检查点
故障点
REDO
撤消
数据库恢复(小结) 数据库恢复(小结)
- 定义
恢复是把数据库从错误状态恢复到某一正确状态 的功能,从而确保数据库的一致性。 的功能,从而确保数据库的一致性。 恢复的基本原理是冗余, ● 恢复的基本原理是冗余,即数据库中任一部分的 数据可以根据存储在系统别处的冗余数据来重建。 数据可以根据存储在系统别处的冗余数据来重建。
数据库技术
第 12 讲 数据库的备份与恢复
进行数据的备份是数据库的日常维护工作之一。 进行数据的备份是数据库的日常维护工作之一。
问题的提出:数据库系统出现故障后, 问题的提出:数据库系统出现故障后,如何把数据库 从错误状态恢复到正确状态? 从错误状态恢复到正确状态? 恢复技术:数据库备份 日志文件 恢复技术:数据库备份+日志文件
RAID 0 (0级磁盘阵列 级磁盘阵列) 级磁盘阵列 RAID 0又称数据分块,即把数据分布在多个盘 又称数据分块, 又称数据分块 上,没有容错措施。其容量和数据传输率是单机容量 没有容错措施。 为构成磁盘阵列的磁盘机的总数, 传输 的N倍,N为构成磁盘阵列的磁盘机的总数,I/O传输 倍 为构成磁盘阵列的磁盘机的总数 速率高,但平均无故障时间MTTF(Mean Time To 速率高,但平均无故障时间 Failure)只有单台磁盘机的 分之一,因此零级磁盘阵 只有单台磁盘机的N分之一 只有单台磁盘机的 分之一, 列的可靠性最差。 列的可靠性最差。
RAID 3 (3级磁盘阵列 级磁盘阵列) 级磁盘阵列 RAID 3为单盘容错并行传输阵列盘。它的特点是将 为单盘容错并行传输阵列盘。 为单盘容错并行传输阵列盘 检验盘减小为一个( 校验盘为多个, 检验盘减小为一个(RAID 2校验盘为多个,RAID l 校验盘为多个 检验盘为1比 ),数据以位或字节的方式存于各盘。 ),数据以位或字节的方式存于各盘 检验盘为 比1),数据以位或字节的方式存于各盘。 它的优点是整个阵列的带宽可以充分利用,传输时间 它的优点是整个阵列的带宽可以充分利用, 减小;其缺点是每次读写要牵动整个组, 减小;其缺点是每次读写要牵动整个组,每次只能完 成一次I/O。 成一次 。
日志文件的作用: 日志文件的作用:
故障点 登记日志文件
正常运行
数据库恢复
利用日志文件恢复事务
继续运行 登记日志文件
登记日志文件( 登记日志文件 Logging ) 原则: 原则: 登记的次序严格按事务执行的时间次序。 登记的次序严格按事务执行的时间次序。 必须先写日志,后写数据库。 必须先写日志,后写数据库。
3、恢复策略 、 事务故障的恢复 指事务在运行至正常终点前被终止。 指事务在运行至正常终点前被终止。 a.反向扫描日志文件,查找该事务的更新操作。 反向扫描日志文件,查找该事务的更新操作。 反向扫描日志文件 b.对该事务的更新操作执行逆操作。 对该事务的更新操作执行逆操作。 对该事务的更新操作执行逆操作 说明:事务故障的恢复由系统自动完成。 说明:事务故障的恢复由系统自动完成。
恢复子系统可以定期或不定期地建立检查点保存 数据库状态。 数据库状态。检查点可以按照预定的一个时间间隔建 立。如,每隔一小时建立一个检查点;也可以按照某 每隔一小时建立一个检查点; 种规则建立检查点, 种规则建立检查点,如日志文件已写满一半建立一个 检查点。 检查点。 使用检查点方法可以改善恢复效率。当事务T在 使用检查点方法可以改善恢复效率。当事务 在 一个检查点之前提交, 对数据库所做的修改一定都 一个检查点之前提交,T对数据库所做的修改一定都 已写入数据库, 已写入数据库,写入时间是在这个检查点建立之前或 在这个检查点建立之时。这样,在进行恢复处理时, 在这个检查点建立之时。这样,在进行恢复处理时, 没有必要对事务T执行 执行Redo操作。 操作。 没有必要对事务 执行 操作
RAID 2 (2级磁盘阵列 级磁盘阵列) 级磁盘阵列 RAID 2又称位交叉,采用汉明码作盘错检验, 又称位交叉, 又称位交叉 采用汉明码作盘错检验, 无需在每个扇区之后进行CRC(Cyclic Redundancy 无需在每个扇区之后进行 Check)检验。汉明码是一种(n,k)线性分组码,n为 检验。汉明码是一种 , 线性分组码 线性分组码, 为 检验 码字的长度,k为数据的位数,r为用于检验的位数。 为数据的位数, 为用于检验的位数。 码字的长度, 为数据的位数 为用于检验的位数 因此按位交叉存取最有利于作汉明码检验。 因此按位交叉存取最有利于作汉明码检验。这种盘适 于大数据的读写。但冗余信息开销还是太大, 于大数据的读写。但冗余信息开销还是太大,阻止了 这类盘的广泛应用。 这类盘的广泛应用。
RAID l (1级磁盘阵列 级磁盘阵列) 级磁盘阵列 RAID l又称镜像 又称镜像(Mirror)盘,采用镜像容错来提 又称镜像 盘 高可靠性。即每一个工作盘都有一个镜像盘, 高可靠性。即每一个工作盘都有一个镜像盘,每次写 数据时必须同时写入镜像盘, 数据时必须同时写入镜像盘,读数据时只从工作盘读 出。一旦工作盘发生故障立即转入镜像盘,从镜像盘 一旦工作盘发生故障立即转入镜像盘, 中读出数据,然后由系统再恢复工作盘正确数据。 中读出数据,然后由系统再恢复工作盘正确数据。因 此这种方式的数据可以重构, 此这种方式的数据可以重构,但工作盘和镜像盘必须 保持一一对应关系。这种磁盘阵列可靠性很高, 保持一一对应关系。这种磁盘阵列可靠性很高,但其 有效容量减小到总容量一半以下。因此 有效容量减小到总容量一半以下。因此RAID l 常用 于对出错率要求极严的应用场合,如财政、 于对出错率要求极严的应用场合,如财政、金融等领 域。
1、事务的概念 Transaction ) 、事务的概念( 的概念 所谓事务是用户定义的一个数据库操作序列, 所谓事务是用户定义的一个数据库操作序列,这 事务是用户定义的一个数据库操作序列 些操作要么都做,要么都不做, 些操作要么都做,要么都不做,是一个不可分割的工 作单位。 作单位。 在关系数据库中,事务可以是一条SQL语句、一 语句、 在关系数据库中,事务可以是一条 语句 语句。 组SQL语句。 语句 语言中, 在SQL语言中,定义事务的语句有三条: 语言中 定义事务的语句有三条: Begin Transaction Commit Rollback 开始 结束
– 先写日志的原则(WAL) 先写日志的原则( )
对于尚未提交的事务,在将 缓冲区写到外 对于尚未提交的事务,在将DB缓冲区写到外 存之前, 存之前,必须先将日志缓冲区内容写到外存 去。 如果先写DB, 如果先写 ,则可能在写的中途发生系统崩 导致内存缓冲区内容丢失,而外存DB处 溃,导致内存缓冲区内容丢失,而外存 处 于不一致状态,由于日志缓冲区内容已破坏, 于不一致状态,由于日志缓冲区内容已破坏, 导致无法对DB恢复 恢复。 导致无法对 恢复。 日志记录将要发生何种修改。 日志记录将要发生何种修改。 写入DB表示实际发生何种修改。 写入 表示实际发生何种修改。 表示实际发生何种修改
服务器容错技术: 服务器容错技术:
磁盘镜像,双机备份, 磁盘镜像,双机备份,双机磁盘阵列
服务器
服务器
服务器
服务器
服务器
RAID
RAID(磁盘阵列:Redundant Array of Inexpensive (磁盘阵列: Disk,简称RAID技术 。它是 ,简称 技术)。 技术 它是1988年由美国加州大学 年由美国加州大学 Berkeley分校的 分校的David Patterson教授等人提出来的磁 分校的 教授等人提出来的磁 盘冗余技术。从那时起,磁盘阵列技术发展得很快, 盘冗余技术。从那时起,磁盘阵列技术发展得很快, 并逐步走向成熟。 并逐步走向成熟。
相关文档
最新文档