数据库恢复技术(7).ppt
《数据库恢复技术(7).ppt》由会员分享,可在线阅读,更多相关《数据库恢复技术(7).ppt(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第九章 数据库恢复技术9 9.1 .1 事务的基本概念事务的基本概念9 9.2 .2 数据库恢复概述数据库恢复概述9 9.3 .3 故障的种类故障的种类9 9.4 .4 恢复的实现技术恢复的实现技术9 9.5 .5 恢复策略恢复策略9 9.6 .6 具有检查点的恢复技术具有检查点的恢复技术AnIntroductiontoDatabaseSystem9 9.1 .1 事务的基本概念事务的基本概念一、事务一、事务n事务事务(Transaction)是用户定义的一个数据库操作序列,是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工这些操作要么全做,要么全不做,是一个不可
2、分割的工作单位。作单位。n事务和程序是两个概念事务和程序是两个概念在关系数据库中,一个事务可以是一条在关系数据库中,一个事务可以是一条SQL语句,语句,一组一组SQL语句或整个程序;语句或整个程序;一个应用程序通常包含多个事务。一个应用程序通常包含多个事务。n事务是恢复和并发控制的基本单位。事务是恢复和并发控制的基本单位。AnIntroductiontoDatabaseSystem二、如何定义事务二、如何定义事务显式定义方式显式定义方式 BEGIN TRANSACTIONBEGIN TRANSACTION SQL SQL 语句语句1 1 SQL SQL 语句语句2 2 COMMIT COMMI
3、Tn隐式方式隐式方式当用户没有显式地定义事务时,当用户没有显式地定义事务时,DBMS按缺省规定自动划分事务按缺省规定自动划分事务COMMIT事务正常结束事务正常结束 提交提交事务的所有操作(事务的所有操作(读读+更新更新)事务中所有对数据库的更新事务中所有对数据库的更新永久永久生效生效ROLLBACK事务异常终止事务异常终止n事务运行的过程中发生了故障,不能继续执行事务运行的过程中发生了故障,不能继续执行回滚事务的所有回滚事务的所有更新更新操作操作n事务滚回到事务滚回到开始开始时的状态时的状态BEGIN TRANSACTIONSQL 语句语句1SQL 语句语句2 ROLLBACKAnIntro
4、ductiontoDatabaseSystem三、事务的特性三、事务的特性(ACID(ACID特性特性)1.1.原子性(原子性(AtomicityAtomicity)2.2.一致性(一致性(ConsistencyConsistency)3.3.隔离性(隔离性(IsolationIsolation)4.4.持续性(持续性(Durability Durability)也称永久性(也称永久性(PermanencePermanence)事务是数据库的逻辑工作单位。事务是数据库的逻辑工作单位。事务中包括的诸操作要么都做,事务中包括的诸操作要么都做,要么都不做。要么都不做。事务执行的结果必须是使数据事务执
5、行的结果必须是使数据库从一个一致性状态变到另一个库从一个一致性状态变到另一个一致性状态。一致性状态。一个事务的执行不能被其他事一个事务的执行不能被其他事务干扰务干扰一个事务内部的操作及使用的一个事务内部的操作及使用的数据对其他并发事务是隔离的,并数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干发执行的各个事务之间不能互相干扰扰一个事务一旦提交,它对数据库中一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。数据的改变就应该是永久性的。接下来的其他操作或故障不应该对接下来的其他操作或故障不应该对其执行结果有任何影响。其执行结果有任何影响。n保证事务保证事务ACID特性是事务处理
6、的任务特性是事务处理的任务n破坏事务破坏事务ACID特性的因素特性的因素n多个事务并行运行时,不同事务的操作交叉执行;多个事务并行运行时,不同事务的操作交叉执行;n事务在运行过程中被强行停止。事务在运行过程中被强行停止。AnIntroductiontoDatabaseSystem9 9.2 .2 数据库恢复概述数据库恢复概述故障是不可避免的故障是不可避免的计算机硬件故障;计算机硬件故障;系统软件和应用软件的错误;系统软件和应用软件的错误;操作员的失误;操作员的失误;恶意的破坏。恶意的破坏。故障的影响故障的影响运行事务非正常中断;运行事务非正常中断;破坏数据库。破坏数据库。数据库管理系统对故障的
7、对策数据库管理系统对故障的对策DBMSDBMS提供恢复子系统;提供恢复子系统;保证故障发生后,能把数据库中的数据从错误状态保证故障发生后,能把数据库中的数据从错误状态恢复到某种逻辑一致的状态;恢复到某种逻辑一致的状态;保证事务保证事务ACIDACID。恢复技术是衡恢复技术是衡量系统优劣的量系统优劣的重要指标重要指标AnIntroductiontoDatabaseSystem9 9.3 .3 故障的种类故障的种类n事务故障事务故障n系统故障系统故障n介质故障介质故障n计算机病毒计算机病毒AnIntroductiontoDatabaseSystem一、事务内部故障一、事务内部故障指某个事务在运行过
8、程中由于种种原因未运行至正常终止点就夭折了。指某个事务在运行过程中由于种种原因未运行至正常终止点就夭折了。事务内部故障有的是可以通过程序本身发现的;事务内部故障有的是可以通过程序本身发现的;有的是非预期的,不能由事务程序处理,如:输入数据有误、运算有的是非预期的,不能由事务程序处理,如:输入数据有误、运算溢出、违反了某些完整性限制、某些应用程序出错、并行事务发生死溢出、违反了某些完整性限制、某些应用程序出错、并行事务发生死锁等等。以后,事务故障仅指这一类故障锁等等。以后,事务故障仅指这一类故障 。事务故障意味着事务没有达到预期的终点(事务故障意味着事务没有达到预期的终点(COMMITCOMMI
9、T或者显式的或者显式的ROLLBACKROLLBACK),因此,数据库可能处于不正确状态。恢复程序要在不影),因此,数据库可能处于不正确状态。恢复程序要在不影响其它事务运行的情况下,强行回滚(响其它事务运行的情况下,强行回滚(ROLLBACKROLLBACK)该事务,即撤消该)该事务,即撤消该事务已经作出的任何对数据库的修改,使得该事务好象根本没有启动事务已经作出的任何对数据库的修改,使得该事务好象根本没有启动一样。一样。这类恢复操作称为事务撤消(这类恢复操作称为事务撤消(UNDOUNDO)。)。例例如如:银银行行转转帐帐事事务务。这这个个事事务务把把一一笔笔金金额额从从一一个个帐帐户户甲甲转
10、转给给另另一一个个帐户乙。帐户乙。BEGIN TRANSACTIONBEGIN TRANSACTION读帐户甲的余额读帐户甲的余额BALANCE;BALANCE;BALANCE BALANCEBALANCE-AMOUNT;BALANCE-AMOUNT;(AmountAmount为转帐金额)为转帐金额)IF(BALANCE 0)IF(BALANCE 0)THEN THEN 打印打印 金额不足,不能转帐金额不足,不能转帐;ROLLBACK ROLLBACK;(撤消刚才的修改,恢复事务);(撤消刚才的修改,恢复事务)ELSE ELSE 读帐户乙的余额读帐户乙的余额BALANCE1;BALANCE1;
11、BALANCE1 BALANCE1BALANCE1+AMOUNT;BALANCE1+AMOUNT;写回写回BALANCE1;BALANCE1;COMMIT;COMMIT;AnIntroductiontoDatabaseSystem二、系统故障二、系统故障系统故障系统故障是指造成系统停止运转的任何事件,使得系统要重新启动。是指造成系统停止运转的任何事件,使得系统要重新启动。引起的原因:引起的原因:特定类型的硬件错误(特定类型的硬件错误(CPUCPU故障)、操作系统故障、故障)、操作系统故障、DBMSDBMS代码错误、突然停电等等。代码错误、突然停电等等。故障的后果:故障的后果:影响正在运行的所有
12、事务,但不破坏数据库。影响正在运行的所有事务,但不破坏数据库。这时主存内容,尤其是数据库缓冲区(在内存)中的内容都被丢失,这时主存内容,尤其是数据库缓冲区(在内存)中的内容都被丢失,所有运行事务都非正常终止。所有运行事务都非正常终止。发生系统故障时,一些尚未完成的事务的结果可能已送入物理数据库,发生系统故障时,一些尚未完成的事务的结果可能已送入物理数据库,有些已完成的事务可能有一部分甚至全部留在缓冲区,尚未写回到磁盘有些已完成的事务可能有一部分甚至全部留在缓冲区,尚未写回到磁盘上的物理数据库中,从而造成数据库可能处于不正确的状态。上的物理数据库中,从而造成数据库可能处于不正确的状态。故障的恢复
13、故障的恢复:为保证数据一致性,恢复子系统必须在系统重新启动时:为保证数据一致性,恢复子系统必须在系统重新启动时让所有非正常终止的事务回滚,强行撤消(让所有非正常终止的事务回滚,强行撤消(UNDOUNDO)所有未完成事务。重)所有未完成事务。重做(做(RedoRedo)所有已提交的事务,以将数据库真正恢复到一致状态。)所有已提交的事务,以将数据库真正恢复到一致状态。AnIntroductiontoDatabaseSystem三、介质故障三、介质故障系统故障常称为系统故障常称为软故障软故障(Soft CrashSoft Crash)。)。介质故障称为介质故障称为硬故障硬故障(Hard CrashH
14、ard Crash)。)。硬故障硬故障指外存故障,如磁盘损坏、磁头碰撞,瞬时指外存故障,如磁盘损坏、磁头碰撞,瞬时强磁场干扰等。强磁场干扰等。硬故障将硬故障将破坏破坏数据库或部分数据库,并数据库或部分数据库,并影响影响正在存正在存取这部分数据的所有事务。这类故障比前两类故障取这部分数据的所有事务。这类故障比前两类故障发生的可能性小得多,但破坏性最大。发生的可能性小得多,但破坏性最大。硬故障的恢复硬故障的恢复:装入装入数据库发生介质故障前某个时数据库发生介质故障前某个时刻的数据刻的数据副本,副本,重做自此时开始的所有重做自此时开始的所有成功事务成功事务,将这些事务已提交的结果重新记入数据库将这些
15、事务已提交的结果重新记入数据库AnIntroductiontoDatabaseSystem四、计算机病毒四、计算机病毒计算机病毒是一种人为的故障或破坏,是一些恶作剧者研制的计算机病毒是一种人为的故障或破坏,是一些恶作剧者研制的一种计算机程序,这种程序与其他程序不同,一种计算机程序,这种程序与其他程序不同,它象微生物学所称的它象微生物学所称的病毒一样可以繁殖和传播,并造成对计算机系统包括数据库的危害。病毒一样可以繁殖和传播,并造成对计算机系统包括数据库的危害。总结各类故障,对数据库的影响有两种可能性,一是总结各类故障,对数据库的影响有两种可能性,一是数据库本数据库本身被破坏身被破坏,二是,二是数
16、据库没有破坏,但数据可能不正确数据库没有破坏,但数据可能不正确,这是因为事这是因为事务的运行被中止造成的。务的运行被中止造成的。n恢复操作的基本原理恢复操作的基本原理:冗余冗余 利用利用存储在系统其它地方的存储在系统其它地方的冗余数据冗余数据来来重建重建数据库中已被破坏或数据库中已被破坏或不正确的那部分数据不正确的那部分数据n恢复的实现技术恢复的实现技术:复杂:复杂 一个大型数据库产品,恢复子系统的代码要占全部代码的一个大型数据库产品,恢复子系统的代码要占全部代码的10%以上。以上。AnIntroductiontoDatabaseSystem9 9.4 .4 恢复的实现技术恢复的实现技术恢复机
17、制涉及的关键问题恢复机制涉及的关键问题1.1.如何建立冗余数据如何建立冗余数据数据转储(数据转储(backupbackup)登录日志文件(登录日志文件(logginglogging)2.2.如何利用这些冗余数据实施数据库恢复如何利用这些冗余数据实施数据库恢复AnIntroductiontoDatabaseSystem9 9.4.1 .4.1 数据转储数据转储一、什么是转储一、什么是转储 故障发生点故障发生点 转储转储 运行事务运行事务 正常运行正常运行 Ta Ta Tb Tb Tf Tf 重装后备副本重装后备副本 重新运行事务重新运行事务恢复恢复 图图7.1 转储和恢复转储和恢复二、转储的用途
18、二、转储的用途转储是指转储是指DBADBA将整个数据库复制到磁带或另一个磁盘上将整个数据库复制到磁带或另一个磁盘上保存起来的过程。保存起来的过程。这些备用的数据文本称为后备副本或后援副本。这些备用的数据文本称为后备副本或后援副本。三、转储方法三、转储方法1静态转储与动态转储静态转储与动态转储2海量转储与增量转储海量转储与增量转储AnIntroductiontoDatabaseSystem1 1静态转储静态转储在系统中无运行事务时进行转储;在系统中无运行事务时进行转储;转储开始时数据库处于一致性状态;转储开始时数据库处于一致性状态;转储期间不允许对数据库的任何存取、修改活动;转储期间不允许对数据
19、库的任何存取、修改活动;优点优点:实现简单;:实现简单;缺点缺点:降低了数据库的可用性。:降低了数据库的可用性。转储必须等用户事务结束;转储必须等用户事务结束;新的事务必须等转储结束。新的事务必须等转储结束。AnIntroductiontoDatabaseSystem2 2 动态转储动态转储转储操作与用户事务并发进行;转储操作与用户事务并发进行;转储期间允许对数据库进行存取或修改;转储期间允许对数据库进行存取或修改;优点:优点:不用等待正在运行的用户事务结束;不用等待正在运行的用户事务结束;不会影响新事务的运行。不会影响新事务的运行。动态转储的缺点:动态转储的缺点:不能保证副本中的数据正确有效
20、。不能保证副本中的数据正确有效。利用动态转储得到的副本进行故障恢复时利用动态转储得到的副本进行故障恢复时需要把动态转储期间各事务对数据库的修改活动登记下需要把动态转储期间各事务对数据库的修改活动登记下来,建立日志文件来,建立日志文件后备副本加上日志文件才能把数据库恢复到某一时刻的后备副本加上日志文件才能把数据库恢复到某一时刻的正确状态正确状态AnIntroductiontoDatabaseSystem3 3海量转储与增量转储海量转储与增量转储海量转储海量转储:每次转储全部数据库。每次转储全部数据库。增量转储增量转储:只转储上次转储后更新过的数据。只转储上次转储后更新过的数据。海海量转储与增量转
21、储比较:量转储与增量转储比较:从恢复角度看,使用海量转储得到的后备副本进行恢从恢复角度看,使用海量转储得到的后备副本进行恢复往往更方便;复往往更方便;但如果数据库很大,事务处理又十分频繁,则增量转但如果数据库很大,事务处理又十分频繁,则增量转储方式更实用更有效。储方式更实用更有效。AnIntroductiontoDatabaseSystem4 4转储方法小结转储方法小结表表7.1 7.1 转储方法分类转储方法分类转储状态转储状态动态转储动态转储静态转储静态转储转储转储方式方式海量转储海量转储动态海量转储动态海量转储静态海量转储静态海量转储增量转储增量转储动态增量转储动态增量转储静态增量转储静态
22、增量转储AnIntroductiontoDatabaseSystem5 5 转储策略转储策略应定期进行数据转储,制作后备副本。应定期进行数据转储,制作后备副本。但转储又是十分耗费时间和资源的,不能频繁进行。但转储又是十分耗费时间和资源的,不能频繁进行。DBADBA应该根据数据库使用情况确定适当的转储周期和转储应该根据数据库使用情况确定适当的转储周期和转储方法。方法。例:例:每天晚上进行动态增量转储每天晚上进行动态增量转储每周进行一次动态海量转储每周进行一次动态海量转储每月进行一次静态海量转储每月进行一次静态海量转储AnIntroductiontoDatabaseSystem9 9.4.2 .4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 恢复 技术
限制150内