版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第十章数据库恢复技术本章目标掌握事务的基本概念和事务的ACID性质。了解数据库恢复技术的重要性,针对不同的故障类型,掌握恢复数据库的策略和方法。重点和难点重点:牢固掌握事务的基本概念和事务的ACID性质。要掌握数据库故障恢复的策略和方法。同学们要在学习完这些知识后把这些问题联系起来,提升对这些技术的理解和掌握。难点:掌握日志文件的使用,系统故障、介质故障的恢复方法。对于刚刚学习数据库的学生来讲并不体会数据库故障恢复的复杂性和重要性。保证数据库系统在遇到故障时能及时恢复正常运行,提高抗故障抗灾难的能力。形成一个逻辑工作单位的数据库操作汇集,称为“事务”。事务处理技术主要包括:数据库恢复技术。并发控制技术。10.1事务的基本概念一、事务(Transaction)事务是一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位,是用户定义的一个数据库环境中的逻辑工作单位。相当于操作系统环境中的“进程”概念。事务和程序是现两个概念。在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序。一个应用程序通常包含多个事务。在SQL语言,一个事务由应用程序中一组操作序列组成。定义一个事务开始:
BEGINTRANSACTION
提交一个事务正常结束:
COMMITTRANSACTION
显式定义方式BEGINTRANSACTIONBEGINTRANSACTIONSQL语句1SQL语句1
SQL语句2SQL语句2
。。。。。。。。。。
COMMITROLLBACK隐式方式当用户没有显式地定义事务时,DBMS按缺省规定自动划分事务提交事务的所有操作(读+更新)事务中所有对数据库的更新永久生效回滚事务:
ROLLBACKTRANSACTION事务运行的过程中发生了故障,不能继续执行的所有更新操作事务回滚到开始时的状态
例子:定义一个事务向sc表插入3条记录,并提交完成。USEXkGO--开始事务BEGINTRANSACTIONINSERTSC(Sno,Cno,Grade)VALUES('00000025','1',78)INSERTSC(Sno,Cno,Grade)VALUES('00000025','2',67)INSERTSC(Sno,Cno,Grade)VALUES('00000025','3',94)--提交事务--撤销事务COMMITTRANSACTION
ROLLBACKTRANSACTION二、事务的特性为保证数据库的完整性,事务必须具有下列四个性质:1、原子性(Atomicity)事务的所有操作必须完成,否则事务将被撤消。因此,事务是不可分割的最小工作单位,它的所有操作要么全部执行,要么一个也不执行,它是一个整体。2、一致性(Consistency)
事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。不一致状态:数据库中包含失败事务的结果一致性与原子性银行转帐:从帐号A中取出一万元,存入帐号B。定义一个事务,该事务包括两个操作这两个操作要么全做,要么全不做全做或者全不做,数据库都处于一致性状态。如果只做一个操作,数据库就处于不一致性状态。
B=B+1
A=A-1BA3、隔离性(Isolation)
指当一个事务执行期间所使用的数据,不能被其它的事务再使用,此事务对当前操作的数据具有独占性,直到此事务结束为止。这种事务的隔离性可保证在多用户的数据库环境中多个用户同时操作一个数据库时能保持数据库的一致性和正确性。T1的修改被T2覆盖了!
读A=16
A←A-3写回A=13①读A=16
②
③A←A-1
写回A=15
④T2T14、持久性(Durability)持续性也称永久性(Permanence)一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其执行结果有任何影响。事务的特性
事务是恢复和并发控制的基本单位。保证事务ACID特性是事务处理的重要任务。事务ACID可能遭到破坏的因素有:(1)多个事务并发运行时,不同事务的操作交叉执行。(2)事务在运行过程中被强行停止。这些就是数据库管理系统中恢复机制和并发控制机制的责任。10.2数据库恢复概述数据库恢复:将数据库管理系统必须具有把数据库从错误状态恢复到某一已知的正确状态的功能。故障是不可避免的计算机硬件故障系统软件和应用软件的错误操作员的失误恶意的破坏故障的影响运行事务非正常中断破坏数据库数据库恢复概述数据库管理系统对故障的对策DBMS提供恢复子系统保证故障发生后,能把数据库中的数据从错误状态恢复到某种逻辑一致的状态保证事务ACID恢复技术是衡量系统优劣的重要指标10.3故障的种类数据库系统中可能发生各种各样的故障,可分为几类:一、事务内部的故障:事务内部的故障有的是可以通过事务本身发现。例如:设银行有一转帐事务,从帐号A的金额转一笔款子X到帐号B,此时应该帐号A的余额-X,将帐号B的余额+X。如果帐号A的余额不足,那么,两个事务都不做,否则都做。事务故障的恢复发生事务故障时,夭折的事务可能已把对数据库的部分修改写回磁盘事务故障的恢复:撤消事务(UNDO)强行回滚(ROLLBACK)该事务清除该事务对数据库的所有修改,使得这个事务象根本没有启动过一样事务故障例如,银行转账事务,这个事务把一笔金额从一个账户甲转给另一个账户乙。
BEGINTRANSACTION
读账户甲的余额BALANCE;
BALANCE=BALANCE-AMOUNT;(AMOUNT为转账金额)
写回BALANCE;
IF(BALANCE<0)THEN{
打印'金额不足,不能转账';
ROLLBACK;(撤销刚才的修改,恢复事务)}ELSE{
读账户乙的余额BALANCE1;
BALANCE1=BALANCE1+AMOUNT;写回BALANCE1;
COMMIT;
}事务内部的故障(续)事务内部更多的故障是非预期的,是不能由应用程序处理的。运算溢出并发事务发生死锁而被选中撤销该事务违反了某些完整性限制等事务故障的恢复:撤消事务(UNDO)二、系统故障系统故障通常称为软故障,是指造成系统停止或错误运行,从而要重新启动系统。整个系统的正常运行突然被破坏所有正在运行的事务都非正常终止内存中数据库缓冲区的信息全部丢失外部存储设备上的数据未受影响如:操作系统或DBMS代码错误操作员操作失误特定类型的硬件错误(如CPU故障)突然停电系统故障的恢复
清除尚未完成的事务对数据库的所有修改系统重新启动时,恢复程序要强行撤消(UNDO)所有未完成事务将缓冲区中已完成事务提交的结果写入数据库系统重新启动时,恢复程序需要重做(REDO)所有已提交的事务三、介质故障硬件故障使存储在外存中的数据部分丢失或全部丢失介质故障比前两类故障的可能性小得多,但破坏性大得多硬件故障磁盘损坏磁头碰撞操作系统的某种潜在错误瞬时强磁场干扰介质故障的恢复装入数据库发生介质故障前某个时刻的数据副本。
重做自此时始的所有成功事务,将这些事务已提交的结果重新记入数据库。四、计算机病毒是一种人为的故障和破坏,是一些恶作剧研制的一种计算机程序,可以繁殖和传播。10.4恢复的实现技术数据库恢复的基本原则:要使数据库具有可恢复性,基本原理就是“冗余”,即数据的重复存储。数据库恢复实现方法:(1)数据转储(dump)(又称“倒库”)转储是指DBA将整个数据库复制到磁带或另一个磁盘上保存起来的过程。这些备用的数据文本称为后备副本或后援副本。一时发生故障,可以将后备副本重新装入。(2)建立“日志”文件(logging)。日志文件是用来记录事务对数据库的更新操作的文件。对于数据库的每次插入、删除或修改,记下改变前后的值,写到““日志”文件,以便有案可查。10.4.1数据转储转储是指系统管理员将整个数据库复制到另一个磁盘上的保存过程。这些备份的数据文件称为后备副本或后援副本。转储是数据库恢复中采用的最基本的技术。一旦数据库发生故障,就可以将后备副本重新装入,恢复数据库中的数据。重装后备副本只能将数据库恢复到转储时的状态。转储是十分耗费时间和资源的,不能频繁进行。转储
故障发生点
转储
运行事务
↓正常运行
─┼───────┼─────────────
Ta
Tb
Tf
重装后备副本
重新运行事务恢复
─┼───────┴------------→转储可分为静态转储和动态转储。静态转储:在系统中无运行事务时进行的转储操作。转储开始时数据库处于一致性状态转储期间不允许对数据库的任何存取、修改活动优点:实现简单缺点:降低了数据库的可用性转储必须等用户事务结束新的事务必须等转储结束动态转储:转储期间允许对数据库进行存取或修改转储操作与用户事务并发进行利用动态转储得到的副本进行故障恢复需要把动态转储期间各事务对数据库的修改活动登记下来,建立日志文件后备副本加上日志文件才能把数据库恢复到某一时刻的正确状态优点不用等待正在运行的用户事务结束不会影响新事务的运行动态转储的缺点不能保证副本中的数据正确有效转储的方式有海量转储和增量转储。每次转储整个数据库,称为海量转储。只转储上次转储之后变化的数据,称为增量转储.海量转储:每次转储全部数据库增量转储:只转储上次转储后更新过的数据海量转储与增量转储比较从恢复角度看,使用海量转储得到的后备副本进行恢复往往更方便但如果数据库很大,事务处理又十分频繁,则增量转储方式更实用更有效转储方法小结(转储方法分类)转储策略例:每天晚上进行动态增量转储每周进行一次动态海量转储每月进行一次静态海量转储
转储状态动态转储静态转储转储方式海量转储动态海量转储静态海量转储增量转储动态增量转储静态增量转储10.4.2登记日志文件(Logging)一、日志文件的格式和内容什么是日志文件日志文件(log)是用来记录事务对数据库的更新操作的文件DBMS系统通过事务日志保存所有的更新数据库事务的操作过程。可以利用事务日志保存的信息来恢复由程序非法中止或者由硬件系统故障等所造成的数据丢失。日志文件主要的两种格式:以记录为单位的日志文件和以数据块为单位的日志文件。记录为单位的日志文件需要登记内容包括:各个事务的开始标记(BEGINTRANSACTION)
各个事务的结束标记(COMMIT或ROLLBACK)
各个事务的所有更新操作
与事务有关的内部更新操作每个日志记录的内容主要包括:事务标识操作的类型(插入、删除或修改)操作对象更新前数据的旧值(对插入操作而言,此项为空值)更新后数据的旧值(对删除操作而言,此项为空值)二、日志文件的作用(1)事务故障恢复和系统故障恢复必须用日志文件(2)在动态转储方式中必须建立日志文件,后援副本和日志文件综合起来才能有效地恢复数据库。(3)在静态转储方式中,也非唯心建立日志文件。见图10.2利用日志文件恢复三、登记日志文件登记日志文件必须遵循两条原则:(1)登记的次序严格按并发事务执行的时间次序。(2)必须先写日志文件,后写数据库文件。10.5恢复策略当系统运行过程中发生故障,利用数据库的后备副本和日志文件就可以将数据恢复到故障前的某一个一致性状态。不同故障其恢复策略和方法方式也不一样。数据库系统的恢复包括事务恢复、数据库状态恢复和系统服务恢复。10.5.1事务故障的恢复事务故障是指事务在运行至正常终止点前被中止时,这时恢复程序应撤消(UNDO)事务已对数据库的修改,具体做法如下:(1)反向扫描文件日志(即从后向前扫描日志文件),查找该事务的更新操作。(2)对该事务的更新操作执行逆操作,即将日志记录中“更新前的值”写入数据库。如果记录中是插入操作,则相当于做删除操作(因为此时“更新前的值”为空);若记录中是删除操作,则相当于做插入操作(因为此时“更新后的值”为空);若是修改操作,则相当于用修改前的值代替修改后的值。(3)继续反向扫描日志文件,查找该事务的其他更新操作,并做同样处理。(4)如此处理下去,直到读到此事务开始标记,事务故障恢复完成。10.5.2系统故障的恢复系统故障造成不一致状态的原因有2个:一是一些未完成的事务对数据库的更新操作已写入数据。二是一些已提交事务对数据库的更新还留在缓冲区不及写入数据库。系统的恢复步骤是:(1)正向扫描日志文件,将其事务标记为重做队列(REDO)。(2)对撤消队列中的各个事务进行撤消(UNDO)处理。反向扫描日志文件,即将日志记录中“更新前的值”写入数据库。(3)对重做队列中的各个事务进行重做(REDO)处理。正向扫描日志文件,即将日志记录中“更新后的值”写入数据库。系统故障的恢复是由系统自动完成的,不需要用户的干预。10.5.3介质故障的恢复介质故障是指外存设备故障,磁盘上的物理数据和日志文件被破坏。主要包括:扇区损坏、磁场干扰而引起的数据错误等等。恢复方法具体如下:(1)装入最新的后备数据库副本.(2)装入有关的日志文件副本.介质故障的恢复必须由DBA参与.10.6具有检查点的恢复技术当事务发生故障时,必须检查日志,决定哪些需要REDO,哪些需要UNDO。原则上需要搜索整个事务日志,但这种做法不现实,开销太大。为此,引入检查点的机制,以提高恢复的机制。(1)将当前位于主存的所有日志记录输出到稳定存储器上。(2)将所有修改了的缓冲块输出到磁盘上。(3)将日志记录输出到稳定存储器。10.6具有检查点的恢复技术检查点(也称安全点、恢复点):当事务正常运行时,数据库系统按一定的时间间隔设检查点。一旦系统需要恢复数据库状态,就可以根据最新的检查点的信息,从检查点开始执行,不必从头开始执行那些被中断的事务。恢复子系统采取的不同策略Tc(检查点)Tf(系统故障)T1T2T3T4T5时间撤消撤消
在检查点辶前就已经成功结束,即使系统崩溃,也不要做任何操作在检查点辶前还没有结束,但在系统崩溃前已经结束,所以需要做REDO操作在检查点辶前已经开始,但在系统崩溃尚未结束,故要做UNDO操作在检
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度米面产品冷链物流配送服务合同4篇
- 2025年度模特影视广告模特聘用合同协议
- 二零二五年度奶牛养殖信息化管理系统采购合同4篇
- 2025年度艺术品抵押贷款服务合同
- 杯间乾坤酒中情怀中国传统文化之酒文化讲解
- 2025年度个人房产托管服务合同范本2篇
- 上海国资国企创新基地2024年度区块链创新应用白皮书
- 二零二五年度环保污染治理设施运营合同4篇
- 二零二五年度房地产项目营销策划合同
- 课题申报参考:农村妇女土地权益特殊保障制度研究-基于浙江、四川、贵州12区县的实证分析
- GB/T 16895.3-2024低压电气装置第5-54部分:电气设备的选择和安装接地配置和保护导体
- 安徽省合肥市2025年高三第一次教学质量检测地理试题(含答案)
- 计划合同部部长述职报告范文
- 风光储储能项目PCS舱、电池舱吊装方案
- 人教版高一地理必修一期末试卷
- GJB9001C质量管理体系要求-培训专题培训课件
- 二手车车主寄售协议书范文范本
- 窗帘采购投标方案(技术方案)
- 基于学习任务群的小学语文单元整体教学设计策略的探究
- 高中英语原版小说整书阅读指导《奇迹男孩》(wonder)-Part one 讲义
- GB/T 9755-2001合成树脂乳液外墙涂料
评论
0/150
提交评论