数据库恢复技术(2).ppt
《数据库恢复技术(2).ppt》由会员分享,可在线阅读,更多相关《数据库恢复技术(2).ppt(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第七章第七章 数据库恢复技术数据库恢复技术7.1 事务的基本概念v一、事务一、事务(Transaction)所谓事务是用户定义的一个操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。事务的开始与结束可以由用户显式控制。如果用户没有显式地定义事务,则由DBMS按缺省规定自动划分事务。v在在SQL语言中,定义事务的语句有三条:语言中,定义事务的语句有三条:BEGIN TRANSACTION 事务开始标记;COMMIT 提交事务的所有操作;ROLLBACK 回滚说明:说明:提交事务就是将事务中所有对数据库的更新写回到磁盘上的物理数据库中去,事务正常结束。回滚表示在事务运行的过程中发生了
2、某种故障,事务不能继续执行,系统将事务中对数据库的所有已完成的操作全部撤消,滚回到事务开始时的状态。这里的操作指对数据库的更新操作。第七章第七章 数据库恢复技术数据库恢复技术27.1 事务的基本概念v二、事务的特性二、事务的特性 The Speciality of Transaction 事务具有四个特性:原子性、一致性、隔离性和持续性。这个四个特性也简称为ACID特性。1 1原子性原子性(Atomicity)事务是数据库的逻辑工作单位,事务中包事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。括的诸操作要么都做,要么都不做。2 2一致性(一致性(ConsistencyCon
3、sistency)事务执行的结果必须是使数据库从一个事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。因此当数据库只包含成功事务一致性状态变到另一个一致性状态。因此当数据库只包含成功事务提交的结果时,就说数据库处于一致性状态。如果数据库系统运行提交的结果时,就说数据库处于一致性状态。如果数据库系统运行中发生故障,有些事务尚未完成就被迫中断,系统将事务中对数据中发生故障,有些事务尚未完成就被迫中断,系统将事务中对数据库的所有已完成的操作全部撤消,滚回到事务开始时的一致状态。库的所有已完成的操作全部撤消,滚回到事务开始时的一致状态。3 3隔离性(隔离性(IsolationIsola
4、tion)一个事务的执行不能被其他事务干扰。即一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。执行的各个事务之间不能互相干扰。4 4持续性持续性 (DurabilityDurability)持续性也称永久性(持续性也称永久性(PermanencePermanence),),指指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其执行结果有任何影响。接下来的其他操作或
5、故障不应该对其执行结果有任何影响。第七章第七章 数据库恢复技术数据库恢复技术37.1 事务的基本概念 事务是恢复和并发控制的事务是恢复和并发控制的基本单位基本单位。保证事务保证事务ACID特性是事务处理的特性是事务处理的重要任务重要任务。事务事务ACID特性可能遭到破坏的因素有:特性可能遭到破坏的因素有:1.多个事务并行运行时,不同事务的操作交叉执行。多个事务并行运行时,不同事务的操作交叉执行。在此情况下,数据库管理系统必须保证多个事务的交叉在此情况下,数据库管理系统必须保证多个事务的交叉运行不影响这些事务的原子性。运行不影响这些事务的原子性。2.事务在运行过程中被强行停止。事务在运行过程中被
6、强行停止。在此情况下,数据库管理系统必须保证被强行终止的事在此情况下,数据库管理系统必须保证被强行终止的事务对数据库和其它事务没有任何影响。务对数据库和其它事务没有任何影响。这些是数据库管理系统中恢复机制和并发控制机这些是数据库管理系统中恢复机制和并发控制机制的责任。制的责任。第七章第七章 数据库恢复技术数据库恢复技术47.2 数据库恢复概述 尽管数据库系统中采取了各种保护措施来防止数据库的安全性和完整性被破坏,保证并发事务的正确执行,但是计算机系统中硬件的故障、软件的错误、操作员的失误以及恶意的破坏仍是不可避免的。这些故障轻轻则造成运行事务非正常中断,影响数据库中数据的正确性,重重则破坏数据
7、库,使数据库中全部或部分数据丢失。因此,数据库管理系统(恢复子系统)必须具有把数据库从错误状态恢复到某一已知的正确状态某一已知的正确状态(称为一致状态或完整状态)的功能,这就是数据库的恢复。第七章第七章 数据库恢复技术数据库恢复技术57.3 故障的种类 一、事务内部的故障一、事务内部的故障 事务内部的故障有的是可以通过事务程序本身发现的,有的是非预期的,不能由事务程序处理的。例子 事务内部更多的故障是非预期的,是不能由应用程序处理的。如运算溢出、并发事务发生死锁而被选中撤消该事务、违反了某些完整性限制等。以后,事务故障仅指这类非预期的故障。事务故障意味着事务没有达到预期的终点(CommitCo
8、mmit或者显式的RollbackRollback),因此,数据库可能处于不正确状态。恢复程序要在不影响其它事务运行的情况下,强行回滚(RollbackRollback)该事务,即撤消该事务已经作出的任何对数据库的修改,使得该事务好象根本没有启动一样。这类恢复操作称为事务撤消(UndoUndo)。第七章第七章 数据库恢复技术数据库恢复技术NEXT6例如:例如:银行转帐事务,这个事务把一笔金额从一个帐户甲转给另一个帐户乙。银行转帐事务,这个事务把一笔金额从一个帐户甲转给另一个帐户乙。Begin Transaction 读帐户甲的余额Balance;Balance=Balance-Amount;A
9、mount 为转帐金额 If(balance0 Then 打印金额不足,不能转帐;Rollback;撤消刚才的修改,恢复事务 Else 读帐户乙的余额Balance1;Balance1=Balance1+Amount;写回Balance1;Commit;这个例子所包括的两个更新操作要么全部完成要么全部不做。否则就会使数据库处于不一致状态,例如只把帐户甲的余额减少了而没有把帐户乙的余额增加。在这段程序中若产生帐户甲余额不足的情况,应用程序可以发现并让事务滚回,撤消已作的修改,恢复数据库到正确状态。第七章第七章 数据库恢复技术数据库恢复技术返回返回77.3 故障的种类 二、系统故障二、系统故障 系
10、统故障是指造成系统停止运转的任何事件,使得系统系统故障是指造成系统停止运转的任何事件,使得系统要重新启动。要重新启动。例如:特定类型的硬件错误(CPU故障)、操作系统故障、DBMS代码错误、突然停电等等。这类故障影响正在运行的所有事务,但不破坏数据库。这时主存内这类故障影响正在运行的所有事务,但不破坏数据库。这时主存内容,尤其是数据库缓冲区(在内存)中的内容都被丢失,所有运行事务容,尤其是数据库缓冲区(在内存)中的内容都被丢失,所有运行事务都非正常终止。都非正常终止。发生系统故障时,一些尚未完成的事务的结果可能已送入物理数据发生系统故障时,一些尚未完成的事务的结果可能已送入物理数据库,有些已完
11、成的事务可能有一部分甚至全部留在缓冲区,尚未写回到库,有些已完成的事务可能有一部分甚至全部留在缓冲区,尚未写回到磁盘上的物理数据库中,从而造成数据库可能处于不正确的状态。磁盘上的物理数据库中,从而造成数据库可能处于不正确的状态。为保证数据一致性,恢复子系统必须在系统重新启动时让所有非正常终止的事务回滚,强行撤消(UndoUndo)所有未完成事务。重做(RedoRedo)所有已提交的事务,以将数据库真正恢复到一致状态。第七章第七章 数据库恢复技术数据库恢复技术87.3 故障的种类 三、介质故障三、介质故障 系统故障常称为软故障(Soft CrashSoft Crash),介质故障称为硬故障(Ha
12、rd CrashHard Crash)。硬故障指外存故障,如磁盘损坏、磁头碰撞,瞬时强磁场干扰等。这类故障将破坏数据库或部分数据库,并影响正在存取这类故障将破坏数据库或部分数据库,并影响正在存取这部分数据的所有事务。这类故障比前两类故障发生的可能这部分数据的所有事务。这类故障比前两类故障发生的可能性小得多,但破坏性最大。性小得多,但破坏性最大。四、计算机病毒四、计算机病毒 计算机病毒是具有破坏性、可以自我复制的计算机程序。计算机病毒已成为计算机系统的主要威胁,自然也是数计算机病毒已成为计算机系统的主要威胁,自然也是数据库系统的主要威胁。因此数据库一旦被破坏仍要用恢复技据库系统的主要威胁。因此数
13、据库一旦被破坏仍要用恢复技术把数据库加以恢复。术把数据库加以恢复。第七章第七章 数据库恢复技术数据库恢复技术97.3 故障的种类 五、小结五、小结 1.1.总结各类故障,总结各类故障,对数据库的影响对数据库的影响有两种可能性。一是有两种可能性。一是数据库本身被破坏。二是数据库没有破坏,但数据可能不正数据库本身被破坏。二是数据库没有破坏,但数据可能不正确,这是因为事务的运行被非正常终止造成的。确,这是因为事务的运行被非正常终止造成的。2.2.恢复的基本原理恢复的基本原理十分简单。可以用一个词来概括:冗十分简单。可以用一个词来概括:冗余。这就是说,数据库中任何一部分被破坏的或不正确的数余。这就是说
14、,数据库中任何一部分被破坏的或不正确的数据可以根据存储在系统别处的冗余数据来重建。据可以根据存储在系统别处的冗余数据来重建。3.3.尽管恢复的基本原理很简单但尽管恢复的基本原理很简单但实现技术的细节实现技术的细节却相当却相当复杂。复杂。第七章第七章 数据库恢复技术数据库恢复技术107.4 恢复的实现技术 恢复机制涉及的恢复机制涉及的两个关键问题是两个关键问题是:第一,如何建立冗余数据;第一,如何建立冗余数据;第二,如何利用这些冗余数据实施数据库恢复。第二,如何利用这些冗余数据实施数据库恢复。建立冗余数据建立冗余数据最常用的技术最常用的技术:1.1.数据转储数据转储;2.2.登录日志文件登录日志
15、文件。通常在一个数据库系统中,这两种方法是通常在一个数据库系统中,这两种方法是一起一起使用使用的。的。第七章第七章 数据库恢复技术数据库恢复技术NEXT111 数据转储数据转储 转转储储即即DBADBA定定期期地地将将整整个个数数据据库库复复制制到到磁磁带带或或另另一一个个磁磁盘盘上上保保存存起起来的过程。这些备用的数据文本称为后备副本或后援副本。来的过程。这些备用的数据文本称为后备副本或后援副本。当数据库遭到破坏后可以将后备副本重新装入,但重装后备副本只能将数据库恢复到转储时的状态,要想恢复到故障发生时的状态,必须重新运行自转储以后的所有更新事务。第七章第七章 数据库恢复技术数据库恢复技术
16、如图7.1:系统在Ta时刻停止运行事务进行数据库转储,在Tb时刻转储完毕,得到Tb时刻的数据库一致性副本。系统运行到Tf时刻发生故障。为恢复数据库,首先由DBADBA重装数据库后备副本,将数据库恢复至Tb时刻的状态,然后重新运行自Tb时刻至Tf时刻的所有更新事务,这样就把数据库恢复到故障发生前的一致状态。121 数据转储数据转储 转转储储是是十十分分耗耗费费时时间间和和资资源源的的,不不能能频频繁繁进进行行。DBADBA应应该根据数据库使用情况确定一个适当的转储周期。该根据数据库使用情况确定一个适当的转储周期。转储可分为转储可分为静态转储静态转储和和动态转储动态转储。转储分为两种方式:转储分为
17、两种方式:1.1.海量转储是指每次转储全部数据库。海量转储是指每次转储全部数据库。2.2.增量转储每次只转储上一次转储后更新过的数据。增量转储每次只转储上一次转储后更新过的数据。从恢复角度看,使用海量转储得到的后备副本进行恢复一般说来会更方便些。但如果数据库很大,事务处理又十分频繁,则增量转储方式更实用更有效。在两种状态下数据转储分为四类:在两种状态下数据转储分为四类:动态海量转储、动态增量转储;动态海量转储、动态增量转储;静态海量转储和静态增量转储。静态海量转储和静态增量转储。第七章第七章 数据库恢复技术数据库恢复技术返回返回13静态转储静态转储 静静态态转转储储是是在在系系统统中中无无运运
18、行行事事务务时时进进行行的的转转储储操作。操作。即即转转储储操操作作开开始始的的时时刻刻,数数据据库库处处于于一一致致性性状状态态,而而转转储储期期间间不不允允许许(或或不不存存在在)对对数数据据库库的的任任何存取、修改活何存取、修改活动动。显显然然,静静态态转转储储得得到到的的一一定定是是一一个个数数据据一一致致性性的副本。的副本。静静态态转转储储简简单单,但但转转储储必必须须等等待待正正运运行行的的用用户户事事务务结结束束才才能能进进行行,同同样样,新新的的事事务务必必须须等等待待转转储储结结束束才才能能执执行行。显显然然,这这会会降降低低数数据据库库的的可可用用性性。第七章第七章 数据库
19、恢复技术数据库恢复技术返回返回14动态转储动态转储 动动态态转转储储是是指指转转储储期期间间允允许许对对数数据据库库进进行行存存取取或或修修改改。即即转储转储和用和用户户事事务务可以并可以并发执发执行。行。动动态态转转储储可可克克服服静静态态转转储储的的缺缺点点,它它不不用用等等待待正正在在运运行行的用户事务结束,也不会影响新事务的运行。的用户事务结束,也不会影响新事务的运行。但但是是,转转储储结结束束时时后后援援副副本本上上的的数数据据并并不不能能保保证证正正确确有有效。效。例例如如,在在转转储储期期间间的的某某个个时时刻刻TcTc,系系统统把把数数据据A=100A=100转转储储到到磁磁带
20、带上上,而而在在下下一一时时刻刻TdTd,某某一一事事务务将将A A改改为为200200。转转储储结结束后,后备副本上的束后,后备副本上的A A已是过时的数据了。已是过时的数据了。为为此此,必必须须把把转转储储期期间间各各事事务务对对数数据据库库的的修修改改活活动动登登记记下下来来,建建立立日日志志文文件件(Log Log FileFile)。这这样样,后后援援副副本本加加上上日日志文件就能把数据库恢复到某一时刻的正确状态。志文件就能把数据库恢复到某一时刻的正确状态。第七章第七章 数据库恢复技术数据库恢复技术返回返回152.登记日志文件登记日志文件 一、日志文件的格式和内容一、日志文件的格式和
21、内容 日日志志文文件件是是用用来来记记录录事事务务对对数数据据库库的的更更新新操操作作的的文文件件。不不同同数数据据库系统采用的日志文件格式并不完全一样。库系统采用的日志文件格式并不完全一样。主要有两种格式:主要有两种格式:(1 1)以记录为单位的日志文件和()以记录为单位的日志文件和(2 2)以数据块为单位的日志文件。)以数据块为单位的日志文件。以以记录为单记录为单位的日志文件,需要登位的日志文件,需要登记记的内容包括:的内容包括:各个事各个事务务的开始的开始(BEGIN TRANSACTION)BEGIN TRANSACTION)标记标记 各个事各个事务务的的结结束束(COMMITCOMM
22、IT或或ROLL BACK)ROLL BACK)标记标记 各个事各个事务务的所有更新操作的所有更新操作 这里每个事务开始的标记、每个事务的结束标记和每个更新操作均作为日志文件中的一个日志记录(log record)。每个日志每个日志记录记录的内容主要包括:的内容主要包括:事事务标识务标识(标标明是那个事明是那个事务务)操作的操作的类类型(插入、型(插入、删删除或修改)除或修改)操作操作对对象象(记录记录内部内部标识标识)更新前数据的旧更新前数据的旧值值(对对插入操作而言,此插入操作而言,此项为项为空空值值)更新后数据的新更新后数据的新值值(对删对删除操作而言除操作而言,此此项为项为空空值值)第
23、七章第七章 数据库恢复技术数据库恢复技术162.登记日志文件登记日志文件 二、日志文件的作用二、日志文件的作用 日日志志文文件件在在数数据据库库恢恢复复中中起起着着非非常常重重要要的的作作用用。可可以以用用来来进进行行事事务故障恢复和系统故障恢复,并协助后备副本进行介质故障恢复。务故障恢复和系统故障恢复,并协助后备副本进行介质故障恢复。具体地讲:具体地讲:事务故障恢复和系统故障必须用日志文件事务故障恢复和系统故障必须用日志文件。在在动动态态转转储储方方式式中中必必须须建建立立日日志志文文件件,后后援援副副本本和和日日志志文文件件综综合合起来才能有效地恢复数据库。起来才能有效地恢复数据库。在在静
24、静态态转转储储方方式式中中,也也可可以以建建立立日日志志文文件件。当当数数据据库库毁毁坏坏后后可可重重新新装装入入后后援援副副本本把把数数据据库库恢恢复复到到转转储储结结束束时时刻刻的的正正确确状状态态,然然后后利利用用日日志志文文件件,把把已已完完成成的的事事务务进进行行重重做做处处理理,对对故故障障发发生生时时尚尚未未完完成成的的事事务务进进行行撤撤消消处处理理。这这样样不不必必重重新新运运行行那那些些已已完完成成的的事事务务程程序序就就可可把把数据库恢复到故障前某一时刻的正确状态,如图数据库恢复到故障前某一时刻的正确状态,如图7.27.2所示。所示。第七章第七章 数据库恢复技术数据库恢复
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 恢复 技术
限制150内