![数据库恢复技术_第1页](http://file2.renrendoc.com/fileroot_temp3/2021-6/13/2795c83a-4313-4941-92eb-e021ca84153c/2795c83a-4313-4941-92eb-e021ca84153c1.gif)
![数据库恢复技术_第2页](http://file2.renrendoc.com/fileroot_temp3/2021-6/13/2795c83a-4313-4941-92eb-e021ca84153c/2795c83a-4313-4941-92eb-e021ca84153c2.gif)
![数据库恢复技术_第3页](http://file2.renrendoc.com/fileroot_temp3/2021-6/13/2795c83a-4313-4941-92eb-e021ca84153c/2795c83a-4313-4941-92eb-e021ca84153c3.gif)
![数据库恢复技术_第4页](http://file2.renrendoc.com/fileroot_temp3/2021-6/13/2795c83a-4313-4941-92eb-e021ca84153c/2795c83a-4313-4941-92eb-e021ca84153c4.gif)
![数据库恢复技术_第5页](http://file2.renrendoc.com/fileroot_temp3/2021-6/13/2795c83a-4313-4941-92eb-e021ca84153c/2795c83a-4313-4941-92eb-e021ca84153c5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2021-6-131数据库原理 数据库恢复技术数据库恢复技术 第第7章章 n 事务的基本概念事务的基本概念 n 数据库恢复概述数据库恢复概述 n 故障的种类故障的种类 n 恢复的技术实现恢复的技术实现 n 恢复策略恢复策略 n 具有检查点的恢复技术具有检查点的恢复技术 n 数据库镜像数据库镜像 n oracleoracle的恢复技术的恢复技术 2021-6-132数据库原理 第三篇第三篇 系统篇系统篇 n数据库系统中的数据是由数据库系统中的数据是由dbmsdbms统一管理和控制的,统一管理和控制的, 为了适应数据共享的环境,为了适应数据共享的环境,dbmsdbms必须提供必须提供数据保数据保
2、护护能力,以保证数据库中数据的能力,以保证数据库中数据的安全可靠安全可靠和和正确正确 有效有效。 n数据保护数据保护 p 安全性安全性 p 完整性完整性 p 并发控制并发控制 p 数据库恢复数据库恢复 第七章第七章 数据库恢复技术数据库恢复技术 第八章第八章 并发控制并发控制 第九章第九章 数据库安全性数据库安全性 第十章第十章 数据库完整性数据库完整性 2021-6-133数据库原理 7.1 7.1 事务的基本概念事务的基本概念 n 什么是事务什么是事务 n 如何定义事务如何定义事务 n 事务的特性事务的特性 2021-6-134数据库原理 什么是事务什么是事务 2021-6-135数据库原
3、理 n显式定义方式显式定义方式 begin transaction begin transactionbegin transaction begin transaction sql sql 语句语句1 1 sql sql 语句语句1 1 sql sql 语句语句2 2 sql sql 语句语句2 2 。 。 commit rollbackcommit rollback n隐式方式隐式方式 当用户没有显式地定义事务时,当用户没有显式地定义事务时, dbmsdbms按缺省规定自动划分事务。按缺省规定自动划分事务。 如何定义事务如何定义事务 2021-6-136数据库原理 commitcommit
4、p 事务正常结束事务正常结束 p 提交事务的所有操作提交事务的所有操作 p 事务中所有对数据库的更新写回到磁盘物理数据库事务中所有对数据库的更新写回到磁盘物理数据库 rollbackrollback p 事务异常终止事务异常终止 p 事务运行的过程中发生了故障,不能继续执行事务运行的过程中发生了故障,不能继续执行 p 将事务中对数据库的所有已完成的操作全部撤销将事务中对数据库的所有已完成的操作全部撤销 p 事务滚回到开始时的状态事务滚回到开始时的状态 2021-6-137数据库原理 事务的特性事务的特性 n原子性原子性(atomicityatomicity) n一致性一致性(consisten
5、cyconsistency) n隔离性隔离性(isolationisolation) n持续性持续性(durability durability ) 事务是数据库的逻辑工作单位,事务是数据库的逻辑工作单位,事务中包括的事务中包括的 诸操作要么都做,要么都不做。诸操作要么都做,要么都不做。 2021-6-138数据库原理 一致性一致性 n事务执行的结果必须是使数据库从一个一致性状态事务执行的结果必须是使数据库从一个一致性状态 变到另一个一致性状态变到另一个一致性状态 一致性状态:一致性状态: 数据库中只包含成功事务提交的结果数据库中只包含成功事务提交的结果 不一致状态:不一致状态: 数据库中包含
6、失败事务的结果数据库中包含失败事务的结果 2021-6-139数据库原理 银行转帐:从帐号银行转帐:从帐号a a中取出一万元,存入帐号中取出一万元,存入帐号b b。 n定义一个事务,该事务包括两个操作定义一个事务,该事务包括两个操作 n这两个操作要么全做,要么全不做。这两个操作要么全做,要么全不做。 p 全做或者全不做,数据库都处于一致性状态。全做或者全不做,数据库都处于一致性状态。 p 如果只做一个操作,数据库就处于不一致性状如果只做一个操作,数据库就处于不一致性状 态。态。 2021-6-1310数据库原理 隔离性隔离性 n一个事务的执行不能被其他事务干扰一个事务的执行不能被其他事务干扰
7、n一个事务内部的操作及使用的数据对其他并发一个事务内部的操作及使用的数据对其他并发 事务是隔离的事务是隔离的 n并发执行的各个事务之间不能互相干扰并发执行的各个事务之间不能互相干扰 2021-6-1311数据库原理 t t1 1的修改被的修改被t t2 2覆盖了!覆盖了! 2021-6-1312数据库原理 持久性持久性 n持续性也称永久性(持续性也称永久性(permanencepermanence) p 一个事务一旦提交,它对数据库中数据的一个事务一旦提交,它对数据库中数据的 改变就应该是永久性的。改变就应该是永久性的。 p 接下来的其他操作或故障不应该对其执行接下来的其他操作或故障不应该对其
8、执行 结果有任何影响。结果有任何影响。 2021-6-1313数据库原理 n保证事务保证事务acidacid特性是事务处理的任务特性是事务处理的任务 n破坏事务破坏事务acidacid特性的因素特性的因素 p 多个事务并行运行时,不同事务的操作多个事务并行运行时,不同事务的操作交叉交叉执行执行 p 事务在运行过程中被事务在运行过程中被强行停止强行停止 2021-6-1314数据库原理 7.2 7.2 数据库恢复概述数据库恢复概述 n故障是不可避免的故障是不可避免的 p 计算机硬件故障计算机硬件故障 p 系统软件和应用软件的错误系统软件和应用软件的错误 p 操作员的失误操作员的失误 p 恶意的破
9、坏恶意的破坏 n故障的影响故障的影响 p 运行事务非正常中断运行事务非正常中断 p 破坏数据库破坏数据库 2021-6-1315数据库原理 n数据库管理系统对故障的对策数据库管理系统对故障的对策 p dbmsdbms提供恢复子系统提供恢复子系统 p 保证故障发生后,能把数据库中的数据从错误保证故障发生后,能把数据库中的数据从错误 状态恢复到某种逻辑一致的状态。状态恢复到某种逻辑一致的状态。 p 保证事务保证事务acidacid n恢复技术是衡量系统优劣的重要指标恢复技术是衡量系统优劣的重要指标 2021-6-1316数据库原理 7.3 7.3 故障的种类故障的种类 数据库运行过程中可能发生的故
10、障主要有:数据库运行过程中可能发生的故障主要有: p 事务内部故障事务内部故障 p 系统故障系统故障 p 介质故障介质故障 p 计算机病毒计算机病毒 各类故障,对数据库的影响有两种可能性:各类故障,对数据库的影响有两种可能性: u 数据库本身被破坏数据库本身被破坏; u 数据库没有破坏,但数据库没有破坏,但数据可能不正确数据可能不正确。 2021-6-1317数据库原理 事务内部的故障事务内部的故障 n什么是事务故障什么是事务故障 p 某个事务在运行过程中由于种种原因未运行至正某个事务在运行过程中由于种种原因未运行至正 常终止点就夭折了常终止点就夭折了 n事务故障的常见原因事务故障的常见原因
11、p 输入数据有误输入数据有误 p 运算溢出运算溢出 p 违反了某些完整性限制违反了某些完整性限制 p 某些应用程序出错某些应用程序出错 p 并行事务发生死锁并行事务发生死锁 p 。 2021-6-1318数据库原理 n发生事务故障时,夭折的事务可能已把对数据库的发生事务故障时,夭折的事务可能已把对数据库的 部分修改写回磁盘。部分修改写回磁盘。 n事务故障的恢复:撤消事务(事务故障的恢复:撤消事务(undoundo) n强行回滚(强行回滚(rollbackrollback)该事务)该事务 n清除该事务对数据库的所有修改,使得这个事务象清除该事务对数据库的所有修改,使得这个事务象 根本没有启动过一
12、样。根本没有启动过一样。 事务故障的恢复事务故障的恢复 2021-6-1319数据库原理 系统故障系统故障 n什么是系统故障什么是系统故障 p 整个系统的正常运行突然被破坏整个系统的正常运行突然被破坏 p 所有正在运行的事务都非正常终止所有正在运行的事务都非正常终止 p 内存中数据库缓冲区的信息全部丢失内存中数据库缓冲区的信息全部丢失 p 外部存储设备上的数据未受影响外部存储设备上的数据未受影响 2021-6-1320数据库原理 系统故障的常见原因系统故障的常见原因 n操作系统或操作系统或dbmsdbms代码错误代码错误 n操作员操作失误操作员操作失误 n特定类型的硬件错误(如特定类型的硬件错
13、误(如cpucpu故障)故障) n突然停电突然停电 2021-6-1321数据库原理 n 清除尚未完成的事务对数据库的所有修改清除尚未完成的事务对数据库的所有修改 p系统重新启动时,恢复程序要强行撤消(系统重新启动时,恢复程序要强行撤消(undoundo) 所有未完成事务。所有未完成事务。 n将缓冲区中已完成事务提交的结果写入数据库将缓冲区中已完成事务提交的结果写入数据库 p系统重新启动时,恢复程序需要重做(系统重新启动时,恢复程序需要重做(redoredo)所)所 有已提交的事务。有已提交的事务。 系统故障的恢复系统故障的恢复 2021-6-1322数据库原理 介质故障介质故障 n硬件故障使
14、存储在外存中的数据部分丢失或全部硬件故障使存储在外存中的数据部分丢失或全部 丢失丢失 n介质故障比前两类故障的可能性小得多,但破坏介质故障比前两类故障的可能性小得多,但破坏 性大得多。性大得多。 2021-6-1323数据库原理 n硬件故障硬件故障 p 磁盘损坏磁盘损坏 p 磁头碰撞磁头碰撞 p 操作系统的某种潜在错误操作系统的某种潜在错误 p 瞬时强磁场干扰瞬时强磁场干扰 介质故障的常见原因介质故障的常见原因 2021-6-1324数据库原理 介质故障的恢复介质故障的恢复 n装入数据库发生介质故障前某个时刻的数据副本装入数据库发生介质故障前某个时刻的数据副本 n重做自此时始的所有成功事务,将
15、这些事务已提交重做自此时始的所有成功事务,将这些事务已提交 的结果重新记入数据库。的结果重新记入数据库。 2021-6-1325数据库原理 恢复操作的基本原理恢复操作的基本原理 n恢复操作的基本原理:冗余恢复操作的基本原理:冗余 p利用存储在系统其它地方的冗余数据来重建利用存储在系统其它地方的冗余数据来重建 数据库中已被破坏或不正确的那部分数据数据库中已被破坏或不正确的那部分数据 n恢复的实现技术:复杂恢复的实现技术:复杂 p一个大型数据库产品,恢复子系统的代码要一个大型数据库产品,恢复子系统的代码要 占全部代码的占全部代码的10%10%以上。以上。 2021-6-1326数据库原理 7.4
16、7.4 恢复的实现技术恢复的实现技术 恢复机制涉及的关键问题恢复机制涉及的关键问题 1. 1. 如何建立冗余数据如何建立冗余数据 p 数据转储数据转储(backupbackup) p 登录日志文件登录日志文件(logginglogging) 2. 2. 如何利用这些冗余数据实施数据库恢复如何利用这些冗余数据实施数据库恢复 2021-6-1327数据库原理 7.47.4.1.1 数据转储数据转储 n转储是指转储是指dbadba将整个数据库复制到磁带或另一个磁盘将整个数据库复制到磁带或另一个磁盘 上保存起来的过程。上保存起来的过程。 n这些备用的数据文本称为后备副本或后援副本。这些备用的数据文本称
17、为后备副本或后援副本。 故障发生点故障发生点 转储转储 运行事务运行事务 正常运行正常运行 ta ta tb tb tf tf 重装后备副本重装后备副本 重新运行事务重新运行事务 恢复恢复 2021-6-1328数据库原理 转储的方法转储的方法 p 静态转储与动态转储静态转储与动态转储 p 海量转储与增量转储海量转储与增量转储 p 转储方法小结转储方法小结 2021-6-1329数据库原理 n在系统中无运行事务时进行转储在系统中无运行事务时进行转储 n转储开始时数据库处于一致性状态转储开始时数据库处于一致性状态 n转储期间不允许对数据库的任何存取、修改活动转储期间不允许对数据库的任何存取、修改
18、活动 n优点:实现简单优点:实现简单 n缺点:降低了数据库的可用性缺点:降低了数据库的可用性 p 转储必须等用户事务结束转储必须等用户事务结束 p 新的事务必须等转储结束新的事务必须等转储结束 静态转储静态转储 2021-6-1330数据库原理 故障发生点故障发生点 静态静态转储转储 运行事务运行事务 正常运行正常运行 ta ta tb tb tf tf 重装后备副本重装后备副本 恢复恢复 2021-6-1331数据库原理 n转储操作与用户事务并发进行转储操作与用户事务并发进行 n转储期间允许对数据库进行存取或修改转储期间允许对数据库进行存取或修改 n优点优点 p 不用等待正在运行的用户事务结
19、束不用等待正在运行的用户事务结束 p 不会影响新事务的运行不会影响新事务的运行 n缺点:不能保证副本中的数据正确有效缺点:不能保证副本中的数据正确有效 动态转储动态转储 n利用动态转储得到的副本进行故障恢复利用动态转储得到的副本进行故障恢复 p 需要把动态转储期间各事务对数据库的修改活动需要把动态转储期间各事务对数据库的修改活动 登记下来,建立日志文件。登记下来,建立日志文件。 p 后备副本加上日志文件才能把数据库恢复到某一后备副本加上日志文件才能把数据库恢复到某一 时刻的正确状态时刻的正确状态 2021-6-1332数据库原理 运行事务运行事务 故障发生点故障发生点 动态动态转储转储 运行事
20、务运行事务 正常运行正常运行 ta ta tb tb tf tf 重装后备副本重装后备副本 利用日志文件恢复利用日志文件恢复 恢复恢复 2021-6-1333数据库原理 ta ta tb tb tf tf 动态动态转储转储 运行事务运行事务 故障发生点故障发生点 正常运行正常运行 登记日志文件登记日志文件 登记新日志文件登记新日志文件 转储日志文件转储日志文件 重装后备副本,然后利用转储的日志文件恢复重装后备副本,然后利用转储的日志文件恢复 恢复到一恢复到一 致性状态致性状态 2021-6-1334数据库原理 海量转储、增量转储海量转储、增量转储 n海量转储海量转储: : 每次转储全部数据库每
21、次转储全部数据库 n增量转储增量转储: : 只转储上次转储后更新过的数据只转储上次转储后更新过的数据 n海量转储与增量转储比较海量转储与增量转储比较 p从恢复角度看,使用海量转储得到的后备副本进从恢复角度看,使用海量转储得到的后备副本进 行恢复往往更方便。行恢复往往更方便。 p但如果数据库很大,事务处理又十分频繁,则增但如果数据库很大,事务处理又十分频繁,则增 量转储方式更实用更有效。量转储方式更实用更有效。 2021-6-1335数据库原理 转储方法小结转储方法小结 转储状态转储状态 动态转储动态转储静态转储静态转储 转储转储 方式方式 海量转储海量转储动态海量转储动态海量转储静态海量转储静
22、态海量转储 增量转储增量转储动态增量转储动态增量转储静态增量转储静态增量转储 表表7.1 7.1 数据转储的分类数据转储的分类 2021-6-1336数据库原理 n应定期进行数据转储,制作后备副本。应定期进行数据转储,制作后备副本。 n但转储又是十分耗费时间和资源的,不能频繁进行。但转储又是十分耗费时间和资源的,不能频繁进行。 ndbadba应该根据数据库使用情况确定适当的转储周期和应该根据数据库使用情况确定适当的转储周期和 转储方法。例:转储方法。例: p 每天晚上进行动态增量转储每天晚上进行动态增量转储 p 每周进行一次动态海量转储每周进行一次动态海量转储 p 每月进行一次静态海量转储每月
23、进行一次静态海量转储 转储策略转储策略 2021-6-1337数据库原理 7.47.4.2.2 登记日志文件登记日志文件 n日志文件的内容日志文件的内容 n日志文件的用途日志文件的用途 n登记日志文件的原则登记日志文件的原则 2021-6-1338数据库原理 日志文件的内容日志文件的内容 1. 1. 什么是日志文件什么是日志文件 日志文件日志文件(log)(log)是用来记录事务对数据库的更新操作的是用来记录事务对数据库的更新操作的 文件文件 2. 2. 日志文件的格式日志文件的格式 p 以以记录记录为单位的日志文件为单位的日志文件 p 以以数据块数据块为单位的日志文件为单位的日志文件 3.
24、3. 日志文件内容日志文件内容 p 各个事务的开始标记各个事务的开始标记(begin transaction)(begin transaction) p 各个事务的结束标记各个事务的结束标记(commit(commit或或rollback)rollback) p 各个事务的所有更新操作各个事务的所有更新操作 日志文件中的一个日志记录日志文件中的一个日志记录 (log record)(log record) 2021-6-1339数据库原理 每条日志记录的内容每条日志记录的内容 p事务标识事务标识 p操作类型(插入、删除或修改)操作类型(插入、删除或修改) p操作对象(记录的内部标识)操作对象(
25、记录的内部标识) p更新前数据的旧值(对插入操作而言,此项为空值)更新前数据的旧值(对插入操作而言,此项为空值) p更新后数据的新值(对删除操作而言更新后数据的新值(对删除操作而言, , 此项为空值)此项为空值) 4.4.基于记录的日志文件基于记录的日志文件 2021-6-1340数据库原理 每条日志记录的内容每条日志记录的内容 p事务标识(标明是那个事务)事务标识(标明是那个事务) p更新前数据所在的整个数据块的值(对插入操作更新前数据所在的整个数据块的值(对插入操作 而言,此项为空值)而言,此项为空值) p更新后整个数据块的值(对删除操作而言更新后整个数据块的值(对删除操作而言, , 此项
26、此项 为空值)为空值) 5.5.基于数据块的日志文件基于数据块的日志文件 2021-6-1341数据库原理 日志文件的用途日志文件的用途 p事务故障事务故障恢复和恢复和系统故障系统故障恢复恢复必须用日志文件必须用日志文件。 p动态转储动态转储方式中,方式中,必须建立日志文件必须建立日志文件,后援副本和,后援副本和 日志文件综合起来有效地恢复数据库。日志文件综合起来有效地恢复数据库。 p静态转储静态转储方式中,也方式中,也可以建立日志文件可以建立日志文件。当数据库。当数据库 破坏后可重新装入后援副本把数据库恢复到转储结破坏后可重新装入后援副本把数据库恢复到转储结 束时刻的正确状态,然后利用日志文
27、件,把已完成束时刻的正确状态,然后利用日志文件,把已完成 的事务进行重做处理,对故障发生时尚未完成的事的事务进行重做处理,对故障发生时尚未完成的事 务进行撤销处理。务进行撤销处理。 2021-6-1342数据库原理 故障发生点故障发生点 静态转储静态转储 运行事务运行事务 正常运行正常运行 ta tb tf ta tb tf 登记日志文件登记日志文件 重装后备副本重装后备副本 利用日志文件恢复事务利用日志文件恢复事务 继续运行继续运行 介质故障恢复介质故障恢复 登记日志文件登记日志文件 2021-6-1343数据库原理 登记日志文件的原则登记日志文件的原则 n为保证数据库是可恢复的,登记日志文
28、件时必须遵循为保证数据库是可恢复的,登记日志文件时必须遵循 两条原则两条原则: : p登记的次序严格按并行事务执行的时间次序登记的次序严格按并行事务执行的时间次序 p必须先写日志文件,后写数据库必须先写日志文件,后写数据库 写日志文件操作:把表示这个修改的日志记录写日志文件操作:把表示这个修改的日志记录 写到日志文件。写到日志文件。 写数据库操作:把对数据的修改写到数据库中。写数据库操作:把对数据的修改写到数据库中。 2021-6-1344数据库原理 n为什么要先写日志文件为什么要先写日志文件 p写数据库和写日志文件是两个不同的操作。写数据库和写日志文件是两个不同的操作。 p在这两个操作之间可
29、能发生故障。在这两个操作之间可能发生故障。 p如果先写了数据库修改,而在日志文件中没有登如果先写了数据库修改,而在日志文件中没有登 记下这个修改,则以后就无法恢复这个修改了。记下这个修改,则以后就无法恢复这个修改了。 p如果先写日志,但没有修改数据库,按日志文件如果先写日志,但没有修改数据库,按日志文件 恢复时只不过是多执行一次不必要的恢复时只不过是多执行一次不必要的undoundo操作,操作, 并不会影响数据库的正确性。并不会影响数据库的正确性。 2021-6-1345数据库原理 7.5 7.5 恢复策略恢复策略 n 事务故障恢复事务故障恢复 n 系统故障恢复系统故障恢复 n 介质故障恢复介
30、质故障恢复 2021-6-1346数据库原理 7.5.1 7.5.1 事务故障恢复事务故障恢复 n事务故障:事务在运行至正常终止点前被中止事务故障:事务在运行至正常终止点前被中止 n恢复方法恢复方法 p由恢复子系统应利用日志文件撤消(由恢复子系统应利用日志文件撤消(undoundo)此事)此事 务已对数据库进行的修改务已对数据库进行的修改 n事务故障的恢复由系统事务故障的恢复由系统自动完成自动完成,不需要用户干预,不需要用户干预 2021-6-1347数据库原理 事务故障恢复步骤事务故障恢复步骤 1. 1. 反向扫描文件日志(即从最后向前扫描日志文件),查找该反向扫描文件日志(即从最后向前扫描
31、日志文件),查找该 事务的更新操作。事务的更新操作。 2. 2. 对该事务的更新操作执行逆操作。即将日志记录中对该事务的更新操作执行逆操作。即将日志记录中“更新前更新前 的值的值” ” 写入数据库。写入数据库。 n插入操作,插入操作,“更新前的值更新前的值”为空,则相当于做删除操作;为空,则相当于做删除操作; n删除操作,删除操作,“更新后的值更新后的值”为空,则相当于做插入操作;为空,则相当于做插入操作; n若是修改操作,则用修改前值代替修改后值。若是修改操作,则用修改前值代替修改后值。 3. 3. 继续反向扫描日志文件,查找该事务的其他更新操作,并做继续反向扫描日志文件,查找该事务的其他更
32、新操作,并做 同样处理。同样处理。 4. 4. 如此处理下去,直至读到此事务的开始标记,事务故障恢复如此处理下去,直至读到此事务的开始标记,事务故障恢复 就完成了。就完成了。 2021-6-1348数据库原理 7.5.2 7.5.2 系统故障恢复系统故障恢复 n系统故障造成数据库不一致状态的原因系统故障造成数据库不一致状态的原因 p一些未完成事务对数据库的更新已写入数据库一些未完成事务对数据库的更新已写入数据库 p一些已提交事务对数据库的更新还留在缓冲区没一些已提交事务对数据库的更新还留在缓冲区没 来得及写入数据库来得及写入数据库 n恢复方法恢复方法 p undo undo 故障发生时未完成的
33、事务故障发生时未完成的事务 p redo redo 已完成的事务已完成的事务 n系统故障的恢复由系统在系统故障的恢复由系统在重新启动时重新启动时自动完成,不需自动完成,不需 要用户干预要用户干预 2021-6-1349数据库原理 系统故障恢复步骤系统故障恢复步骤 1.1.正向扫描日志文件(即从头扫描日志文件)正向扫描日志文件(即从头扫描日志文件) nredoredo队列队列: : 在故障发生前已经提交的事务在故障发生前已经提交的事务 t1, t3, t8t1, t3, t8. nundoundo队列队列: :故障发生时尚未完成的事务故障发生时尚未完成的事务 t2, t4, t5, t6, t7
34、, t9 t2, t4, t5, t6, t7, t9 . 2. 2. 对对undoundo队列队列事务进行事务进行undoundo处理处理 反向扫描日志文件,对每个反向扫描日志文件,对每个undoundo事务的更新操作执行逆操作事务的更新操作执行逆操作 t2, t4, t5, t6, t7, t9 t2, t4, t5, t6, t7, t9 3. 3. 对对redoredo队列事务进行队列事务进行redoredo处理处理 正向扫描日志文件,对每个正向扫描日志文件,对每个redoredo事务重新执行登记的操作事务重新执行登记的操作 t1, t3, t8t1, t3, t8. 2021-6-1
35、350数据库原理 7.5.3 7.5.3 介质故障恢复介质故障恢复 n恢复方法恢复方法 p重装数据库,使数据库恢复到一致性状态重装数据库,使数据库恢复到一致性状态 p重做已完成的事务重做已完成的事务 n介质故障的恢复需要介质故障的恢复需要dbadba介入介入 ndbadba的工作的工作 p重装最近转储的数据库副本和有关的各日志文件重装最近转储的数据库副本和有关的各日志文件 副本副本 p执行系统提供的恢复命令执行系统提供的恢复命令 n具体的恢复操作仍由具体的恢复操作仍由dbmsdbms完成完成 2021-6-1351数据库原理 2. 2. 装入有关的日志文件副本,重做已完成的事务。装入有关的日志
36、文件副本,重做已完成的事务。 p首先扫描日志文件,找出故障发生时已提交的事务的标识,首先扫描日志文件,找出故障发生时已提交的事务的标识, 将其记入重做队列。将其记入重做队列。 p然后正向扫描日志文件,对重做队列中的所有事务进行重做然后正向扫描日志文件,对重做队列中的所有事务进行重做 处理。即将日志记录中处理。即将日志记录中“更新后的值更新后的值”写入数据库。写入数据库。 介质故障恢复步骤介质故障恢复步骤 1. 1. 装入最新的后备数据库副本,使数据库恢复到最近一次转储时装入最新的后备数据库副本,使数据库恢复到最近一次转储时 的一致性状态。的一致性状态。 p静态转储的数据库副本,装入后数据库即处
37、于一致性状态;静态转储的数据库副本,装入后数据库即处于一致性状态; p动态转储的数据库副本,还须同时装入转储时刻的日志文件动态转储的数据库副本,还须同时装入转储时刻的日志文件 副本,利用与恢复系统故障相同的方法(即副本,利用与恢复系统故障相同的方法(即redo+undoredo+undo),), 才能将数据库恢复到一致性状态。才能将数据库恢复到一致性状态。 2021-6-1352数据库原理 7.6 7.6 具有检查点的恢复技术具有检查点的恢复技术 n 问题的提出问题的提出 n 检查点技术检查点技术 n 利用检查点的恢复策略利用检查点的恢复策略 2021-6-1353数据库原理 问题的提出问题的
38、提出 n两个问题两个问题 p 搜索整个日志将耗费大量的时间搜索整个日志将耗费大量的时间 p redoredo处理:重新执行,浪费了大量时间处理:重新执行,浪费了大量时间 n解决方案解决方案具有检查点的恢复技术具有检查点的恢复技术 n在日志文件中增加检查点(在日志文件中增加检查点(checkpointcheckpoint)记录)记录 n增加重新开始文件增加重新开始文件 n恢复子系统在登录日志文件期间动态地维护日志恢复子系统在登录日志文件期间动态地维护日志 2021-6-1354数据库原理 检查点技术检查点技术 n检查点记录的内容检查点记录的内容 p 建立检查点时刻所有正在执行的事务清单建立检查点
39、时刻所有正在执行的事务清单 p 这些事务最近一个日志记录的地址这些事务最近一个日志记录的地址 n重新开始文件的内容重新开始文件的内容 p 记录各个检查点记录在日志文件中的地址记录各个检查点记录在日志文件中的地址 2021-6-1355数据库原理 图图7.3 7.3 具有检查点的日志文件和重新开始文件具有检查点的日志文件和重新开始文件 2021-6-1356数据库原理 p将当前日志缓冲区中的所有日志记录写入磁盘的日志文件上。将当前日志缓冲区中的所有日志记录写入磁盘的日志文件上。 p在日志文件中写入一个检查点记录。在日志文件中写入一个检查点记录。 p将当前数据缓冲区的所有数据记录写入磁盘的数据库中
40、。将当前数据缓冲区的所有数据记录写入磁盘的数据库中。 p把检查点记录在日志文件中的地址写入一个重新开始文件。把检查点记录在日志文件中的地址写入一个重新开始文件。 在检查点维护日志文件步骤在检查点维护日志文件步骤 建立检查点建立检查点 n定期定期 p按照预定的一个时间间隔按照预定的一个时间间隔 n不定期不定期 p按照某种规则,如日志文件已写满一半建立一个检查点按照某种规则,如日志文件已写满一半建立一个检查点 2021-6-1357数据库原理 利用检查点的恢复策略利用检查点的恢复策略 n当事务当事务t t在一个检查点之前提交在一个检查点之前提交 t t对数据库所做的修改已写入数据库对数据库所做的修
41、改已写入数据库 n在进行恢复处理时,没有必要对事务在进行恢复处理时,没有必要对事务t t执行执行redoredo操作操作 图图7.4 7.4 恢复子系统采取的不同策略恢复子系统采取的不同策略 2021-6-1358数据库原理 恢复步骤恢复步骤 1.1.从重新开始文件中找到最后一个检查点记录在日志文件中的地址,从重新开始文件中找到最后一个检查点记录在日志文件中的地址, 由该地址在日志文件中找到最后一个检查点记录;由该地址在日志文件中找到最后一个检查点记录; 2.2.由该检查点记录得到检查点建立时刻所有正在执行的事务清单由该检查点记录得到检查点建立时刻所有正在执行的事务清单 active-list
42、active-list p建立两个事务队列:建立两个事务队列:undo-list undo-list 和和 redo-list redo-list p把把active-listactive-list暂时放入暂时放入undo-listundo-list队列,队列,redoredo队列暂为空。队列暂为空。 3.3.从检查点开始正向扫描日志文件,直到日志文件结束从检查点开始正向扫描日志文件,直到日志文件结束 p如有新开始的事务如有新开始的事务t ti i,把,把t ti i暂时放入暂时放入undo-listundo-list队列队列 p如有提交的事务如有提交的事务t tj j,把,把t tj j从从
43、undo-listundo-list队列移到队列移到redo-listredo-list队列队列 4.4.对对undo-listundo-list中的每个事务执行中的每个事务执行undoundo操作操作, , 对对redo-listredo-list中的每个中的每个 事务事务执行执行redoredo操作操作 2021-6-1359数据库原理 7.7 7.7 数据库镜像数据库镜像 n介质故障是对系统影响最为严重的一种故障,严重影响数据库介质故障是对系统影响最为严重的一种故障,严重影响数据库 的可用性的可用性 p介质故障恢复比较费时介质故障恢复比较费时 p为预防介质故障,为预防介质故障,dbadb
44、a必须周期性地转储数据库必须周期性地转储数据库 n提高数据库可用性的解决方案提高数据库可用性的解决方案 p数据库镜像(数据库镜像(mirrormirror) n数据库镜像数据库镜像 ndbmsdbms自动把整个数据库或其中的关键数据复制到另一磁盘上自动把整个数据库或其中的关键数据复制到另一磁盘上 ndbmsdbms自动保证镜像数据与主数据的一致性自动保证镜像数据与主数据的一致性( (图图7.5a)7.5a) 2021-6-1360数据库原理 n出现介质故障时出现介质故障时 pdbmsdbms自动利用镜像磁盘数据进行数据库的恢复,不需要关自动利用镜像磁盘数据进行数据库的恢复,不需要关 闭系统和重
45、装数据库副本闭系统和重装数据库副本( (图图7.5b)7.5b) n没有出现故障时没有出现故障时 p可用于并发操作可用于并发操作( (图图7.5a)7.5a) p一个用户对数据加排他锁修改数据一个用户对数据加排他锁修改数据 p其他用户可以读镜像数据库上的数据其他用户可以读镜像数据库上的数据 2021-6-1361数据库原理 图图7.5 7.5 数据库镜像数据库镜像 2021-6-1362数据库原理 7.8 oracle7.8 oracle的恢复技术的恢复技术 n 转储转储 n 登记日志文件登记日志文件 2021-6-1363数据库原理 转转 储储 n转储后备副本的方法转储后备副本的方法 p文件
46、拷贝文件拷贝 pexportexport实用程序实用程序 p用用sqlsql命令命令spoolspool p自己编程实现自己编程实现 p文件拷贝文件拷贝 pimportimport实用程序实用程序 psqlsql* *loaderloader实用程序实用程序 p自己编程实现自己编程实现 n 重装后备副本的方法重装后备副本的方法 2021-6-1364数据库原理 登记日志文件登记日志文件 noracle v.5oracle v.5:以数据块为单位:以数据块为单位 noracle 7oracle 7:redoredo日志日志 + + 回滚段回滚段 2021-6-1365数据库原理 n日志文件以数据块为单位,恢复操作不是基于操作,而是基日志文件以数据块为单位,恢复操作不是基于操作,而是基 于数据块。于数据块。 n将更新前的旧值与更新后的新值分别放在两个不同的日志文将更新前的旧值与更新后的新值分别放在两个不同的日志文 件中:件中: p记录数据库更新前旧值的日志文件称为数据库前像文件记录数据库更新前旧值的日志文件称为数据库前像文件 (befor
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年新教材高中政治 1.1 原始社会的解体和阶级社会的演进说课稿 新人教版必修第一册
- 二零二五年度面料库存管理与购销合同
- 2025年度夫妻房产分割及离婚协议书
- 2023-2024学年川教版(2019)小学信息技术五年级下册 第二单元第1节初识人工智能(说课稿)
- 2025年中国街道筒市场调查研究报告
- 2025年餐椅木架项目可行性研究报告
- 2025年中国磁粉轴式制动器市场调查研究报告
- 2024年高中化学 第四章 生命中的基础有机化学物质 第一节 油脂说课稿 新人教版选修5
- 2025年智能化稻谷出白机项目可行性研究报告
- 2025年全频道无线转播器项目可行性研究报告
- 关于防范遏制矿山领域重特大生产安全事故的硬措施课件
- 2025年中国成都餐饮业市场运营态势分析及投资前景预测报告
- 2024年xx县第三小学安全工作管理制度汇编
- 项目合作备忘录范文
- 妇产科医生个人年终述职报告课件
- 家具安装工培训教案优质资料
- 湖南大一型抽水蓄能电站施工及质量创优汇报
- 耳穴疗法治疗失眠
- envi二次开发素材包-idl培训
- 2022年上海市初中语文课程终结性评价指南
- 西门子starter软件简易使用手册
评论
0/150
提交评论