《数据库系统概论第七章数据库恢复技术幻灯片.ppt》由会员分享,可在线阅读,更多相关《数据库系统概论第七章数据库恢复技术幻灯片.ppt(47页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数据库系统概论第七章数据库数据库系统概论第七章数据库恢复技术恢复技术第1页,共47页,编辑于2022年,星期六事务事务4事务定义事务定义事务是用户定义的一个数据库操作序列构成,事务是用户定义的一个数据库操作序列构成,这些操作要么全做,要么全不做,是一个不这些操作要么全做,要么全不做,是一个不可分割的工作单位。可分割的工作单位。事务与应用程序是两个概念,一般来说,一事务与应用程序是两个概念,一般来说,一个应用程序可以包含多个事务。个应用程序可以包含多个事务。事务的开始与结束可以由用户显式控制。如事务的开始与结束可以由用户显式控制。如果用户没有显式定义事务,则由果用户没有显式定义事务,则由DBMS
2、按缺按缺省规定自动划分事务。省规定自动划分事务。第2页,共47页,编辑于2022年,星期六SQL中事务的定义中事务的定义4事务以事务以Begin transaction开始,以开始,以Commit work或或 Rollback work结束。结束。4Commit work表示提交,事务正常结束。表示提交,事务正常结束。4Rollback work表示事务非正常结束,撤表示事务非正常结束,撤消事务已做的操作,回滚到事务开始时消事务已做的操作,回滚到事务开始时状态。状态。第3页,共47页,编辑于2022年,星期六事务的例子事务的例子BEGIN TRANSACTIONREAD 甲账户余额甲账户余额
3、;甲账户余额甲账户余额=1000;IF 甲账户余额甲账户余额 0 THEN;ROLLBACK WORK;ELSEWRITE 甲账户余额甲账户余额;READ 乙账户余额乙账户余额;乙账户余额乙账户余额=1000;WRITE 甲账户余额甲账户余额;COMMIT WORK;第4页,共47页,编辑于2022年,星期六事务的特性(事务的特性(ACID)4原子性原子性(Atomicity)事务是数据库的逻辑工作单位,事务中包括的诸事务是数据库的逻辑工作单位,事务中包括的诸操作要么全做,要么全不做。操作要么全做,要么全不做。4一致性一致性(Consistency)事务执行的结果应当使数据库从一个一致性状态转
4、变事务执行的结果应当使数据库从一个一致性状态转变为另一个一致性状态。为另一个一致性状态。第5页,共47页,编辑于2022年,星期六事务的特性(事务的特性(ACID)4隔离性隔离性(Isolation)一个事务的执行不能被其它事务干扰。即一个事务的执行不能被其它事务干扰。即一个事务内部的操作及使用的数据对其它一个事务内部的操作及使用的数据对其它并发事务是隔离的,并发执行的各个事务并发事务是隔离的,并发执行的各个事务之间不能相互干扰。之间不能相互干扰。第6页,共47页,编辑于2022年,星期六事务的特性(事务的特性(ACID)4持久性持久性(Durability)一个事务一旦提交之后,它对数据库的
5、一个事务一旦提交之后,它对数据库的影响必须是永久的。事务提交后,系统影响必须是永久的。事务提交后,系统发生故障不能改变事务的持久性。发生故障不能改变事务的持久性。第7页,共47页,编辑于2022年,星期六数据库恢复概述数据库恢复概述4虽然数据库系统中采用了各种措施来保虽然数据库系统中采用了各种措施来保证系统安全性和完整性,但计算机系统证系统安全性和完整性,但计算机系统的故障是不可避免的,这些故障轻则造的故障是不可避免的,这些故障轻则造成运行事务的非正常中断,影响数据库成运行事务的非正常中断,影响数据库中数据的正确性,重则破坏数据库,使中数据的正确性,重则破坏数据库,使数据库中的全部或部分数据丢
6、失,因此数据库中的全部或部分数据丢失,因此数据库管理系统必须具有把数据库从错数据库管理系统必须具有把数据库从错误状态恢复到某一已知正确状态的功能,误状态恢复到某一已知正确状态的功能,这就是数据库的恢复。数据库恢复是通这就是数据库的恢复。数据库恢复是通过数据库管理系统的恢复子系统完成的。过数据库管理系统的恢复子系统完成的。第8页,共47页,编辑于2022年,星期六数据库恢复概述数据库恢复概述4数据库恢复子系统的目的包括:数据库恢复子系统的目的包括:保证事务的原子性,即确保一个事务被交付保证事务的原子性,即确保一个事务被交付运行后,要么该事务中的所有数据库操作都运行后,要么该事务中的所有数据库操作
7、都被成功地完成,而且这些操作的结果被永久被成功地完成,而且这些操作的结果被永久地存储到数据库中,要么这个事务对数据库地存储到数据库中,要么这个事务对数据库没有任何影响。没有任何影响。当系统发生故障以后,数据库能够恢复到正当系统发生故障以后,数据库能够恢复到正确状态。确状态。第9页,共47页,编辑于2022年,星期六故障的种类故障的种类4事务内部的故障事务内部的故障事务内部的故障包括可预期的和不可预期的。事务内部的故障包括可预期的和不可预期的。可预期的是指可以通过事务程序本身发现和可预期的是指可以通过事务程序本身发现和处理的故障。而不可预期的错误是指那些不处理的故障。而不可预期的错误是指那些不能
8、由应用程序处理的事务故障,如死锁,运能由应用程序处理的事务故障,如死锁,运算溢出,违反完整性规则等。算溢出,违反完整性规则等。第10页,共47页,编辑于2022年,星期六故障的种类故障的种类4系统故障系统故障系统故障是指造成系统停止运行的任何事情,系统故障是指造成系统停止运行的任何事情,使得系统要重新启动。如硬件错误,操作系使得系统要重新启动。如硬件错误,操作系统故障,停电等。这类故障影响正在运行的统故障,停电等。这类故障影响正在运行的所有事务,所有事务都非正常终止,但不会所有事务,所有事务都非正常终止,但不会破坏数据库。恢复子系统必须清除所有未完破坏数据库。恢复子系统必须清除所有未完成的事务
9、对数据库的修改,同时重做所有已成的事务对数据库的修改,同时重做所有已完成的事务,保证数据库的一致性。完成的事务,保证数据库的一致性。第11页,共47页,编辑于2022年,星期六故障的种类故障的种类4介质故障介质故障介质故障指外存故障,如磁盘损坏,瞬时强介质故障指外存故障,如磁盘损坏,瞬时强磁场干扰等。这类故障将破坏全部或部分数磁场干扰等。这类故障将破坏全部或部分数据库,并影响正在存取这部分数据的所有事据库,并影响正在存取这部分数据的所有事务。务。4计算机病毒计算机病毒计算机病毒是一种人为的破坏或故障,已成计算机病毒是一种人为的破坏或故障,已成为数据库系统的主要威胁之一。为数据库系统的主要威胁之
10、一。第12页,共47页,编辑于2022年,星期六恢复的实现技术恢复的实现技术4数据库恢复的原理数据库恢复的原理数据库恢复的基本原理为冗余。如果数据库数据库恢复的基本原理为冗余。如果数据库中任何一部分数据被破坏或处于不正确的状中任何一部分数据被破坏或处于不正确的状态,则可以通过存储在系统别处的冗余数据态,则可以通过存储在系统别处的冗余数据来重建。来重建。4数据库恢复的关键问题数据库恢复的关键问题如何建立冗余如何建立冗余如何利用冗余实施数据库恢复如何利用冗余实施数据库恢复第13页,共47页,编辑于2022年,星期六恢复的实现技术恢复的实现技术4建立冗余的常用方法建立冗余的常用方法数据转储数据转储数
11、据转储是数据库恢复中采用的基本技术。所谓数据转储是数据库恢复中采用的基本技术。所谓转储即转储即DBA定期地将整个数据库复制到磁带或其定期地将整个数据库复制到磁带或其它存储设备上保存起来的过程。这些备用的数据它存储设备上保存起来的过程。这些备用的数据文本称为后备副本或后援副本。文本称为后备副本或后援副本。当数据库发生故障时,可以将后备副本重新装入,当数据库发生故障时,可以将后备副本重新装入,并重新运行自转储以后的所有更新事务。并重新运行自转储以后的所有更新事务。第14页,共47页,编辑于2022年,星期六恢复的实现技术恢复的实现技术T0T0T1T1T3T3正常运行恢复重装后备副本重新运行事务第1
12、5页,共47页,编辑于2022年,星期六恢复的实现技术恢复的实现技术4转储可以分为:转储可以分为:静态转储静态转储静态转储是在系统中无事务运行时进行的转储操静态转储是在系统中无事务运行时进行的转储操作。即转储开始时数据库处于一致状态,转储过作。即转储开始时数据库处于一致状态,转储过程中,不允许对数据库的任何存取、更新活动。程中,不允许对数据库的任何存取、更新活动。由于转储必须等待正在运行的事务结束才能开始,由于转储必须等待正在运行的事务结束才能开始,而新的事务必须等待转储结束才能执行,降低了而新的事务必须等待转储结束才能执行,降低了数据库的可用性。数据库的可用性。第16页,共47页,编辑于20
13、22年,星期六恢复的实现技术恢复的实现技术动态转储动态转储动态转储是指转储期间允许对数据库进行存取或动态转储是指转储期间允许对数据库进行存取或修改,即转储和用户事务可以并发执行。动态转修改,即转储和用户事务可以并发执行。动态转储克服了静态转储的缺点,但除了转储数据库的储克服了静态转储的缺点,但除了转储数据库的数据以外,还必须把转储期间各事务对数据库的数据以外,还必须把转储期间各事务对数据库的修改记录下来,这样才能保证把数据库恢复到某修改记录下来,这样才能保证把数据库恢复到某一时刻的一致状态。一时刻的一致状态。第17页,共47页,编辑于2022年,星期六恢复的实现技术恢复的实现技术4转储的方式转
14、储的方式海量转储海量转储海量转储指每次转储全部数据库。海量转储指每次转储全部数据库。增量转储增量转储增量转储指每次只转储上一次转储后更新过的数增量转储指每次只转储上一次转储后更新过的数据。据。第18页,共47页,编辑于2022年,星期六恢复的实现技术恢复的实现技术转储状态转储状态动态转储动态转储静态转储静态转储转储转储方式方式海量转储海量转储动态海量转储动态海量转储静态海量转储静态海量转储增量转储增量转储动态增量转储动态增量转储静态增量转储静态增量转储第19页,共47页,编辑于2022年,星期六转储计划的例子转储计划的例子23:00海量增量增量海量增量增量增量周日周日周一周一周二周二周三周三周
15、四周四周五周五周六周六第20页,共47页,编辑于2022年,星期六恢复的实现技术恢复的实现技术登录日志文件登录日志文件日志文件是用来记录事务对数据库的更新日志文件是用来记录事务对数据库的更新操作的文件。日志文件主要有两种格式:操作的文件。日志文件主要有两种格式:以记录为单位的日志文件和以数据块为单以记录为单位的日志文件和以数据块为单位的日志文件。位的日志文件。以记录为单位的日志文件记录的内容包括:以记录为单位的日志文件记录的内容包括:各个事务的开始标记各个事务的开始标记各个事务的结束标记各个事务的结束标记各个事务的所有更新操作各个事务的所有更新操作第21页,共47页,编辑于2022年,星期六恢
16、复的实现技术恢复的实现技术上述内容均作为日志文件中的一个日志记录,每上述内容均作为日志文件中的一个日志记录,每个日志记录的内容包括:个日志记录的内容包括:事务标识(标明是哪个事务)事务标识(标明是哪个事务)操作的类型(插入、删除或修改)操作的类型(插入、删除或修改)操作对象(记录的内部标识)操作对象(记录的内部标识)更新前数据的旧值(对插入操作,此项为空)更新前数据的旧值(对插入操作,此项为空)更新后数据的新值(对删除操作,此项为空)更新后数据的新值(对删除操作,此项为空)对于以数据块为单位的日志文件,日志记录对于以数据块为单位的日志文件,日志记录的内容包括事务标识以及更新前和更新后的的内容包
17、括事务标识以及更新前和更新后的数据块。数据块。第22页,共47页,编辑于2022年,星期六日志记录的例子日志记录的例子4T0,starts4T0,A,1000,9504T0,B,2000,20504T0,commit第23页,共47页,编辑于2022年,星期六恢复的实现技术恢复的实现技术4日志文件的作用日志文件的作用日志文件可以用来进行事务故障恢复和系统故障恢复,并日志文件可以用来进行事务故障恢复和系统故障恢复,并协助后备副本进行介质恢复。其具体作用是:协助后备副本进行介质恢复。其具体作用是:事务故障和系统故障恢复必须使用日志文件。事务故障和系统故障恢复必须使用日志文件。在动态转储方式中必须建
18、立日志文件,后备副本在动态转储方式中必须建立日志文件,后备副本和日志文件综合起来才能保证备份的一致性,和和日志文件综合起来才能保证备份的一致性,和有效地恢复数据库。有效地恢复数据库。在静态转储方式中,也可以建立日志文件。当数在静态转储方式中,也可以建立日志文件。当数据库发生故障时,用后援副本把数据库恢复到转据库发生故障时,用后援副本把数据库恢复到转储结束时的正确状态,然后利用日志文件重做已储结束时的正确状态,然后利用日志文件重做已完成的事务,把数据库恢复到故障前的正确状态。完成的事务,把数据库恢复到故障前的正确状态。第24页,共47页,编辑于2022年,星期六恢复的实现技术恢复的实现技术4登记
19、日志文件登记日志文件为保证数据库是可恢复的,登记日志文件时为保证数据库是可恢复的,登记日志文件时必须遵循两条原则:必须遵循两条原则:登记的次序严格按并发事务执行的时间顺序。登记的次序严格按并发事务执行的时间顺序。必须先写日志文件,后写数据库。必须先写日志文件,后写数据库。第25页,共47页,编辑于2022年,星期六恢复策略恢复策略4事务故障的恢复事务故障的恢复事事务务故故障障是是指指事事务务在在运运行行至至正正常常终终止止点点之之前前被被终终止止。事务故障的恢复是由系统自动完成的,其步骤是:事务故障的恢复是由系统自动完成的,其步骤是:反反向向扫扫描描文文件件日日志志(即即从从最最后后向向前前扫
20、扫描描日日志志文文件件),查查找找该该事事务务的的更新操作。更新操作。对对该该事事务务的的更更新新操操作作执执行行逆逆操操作作,即即将将日日志志记记录录中中的的“更更新新前前的的值值”写写入入数数据据库库。这这时时,如如果果记记录录中中是是插插入入操操作作,则则相相当当于于做做删删除除操操作作;如如果果记记录录中中是是删删除除操操作作,则则相相当当于于做做插插入入操操作作;如如果果记记录录中中是是修修改改操操作作,则则用用修修改改前前的的值值代代替修改后的值。替修改后的值。继续反向扫描日志文件,查找该事务的更新操作,并做同样处理继续反向扫描日志文件,查找该事务的更新操作,并做同样处理如此处理下
21、去,直到读到该事务的开始标志。如此处理下去,直到读到该事务的开始标志。第26页,共47页,编辑于2022年,星期六恢复策略恢复策略4系统故障的恢复系统故障的恢复系统故障造成数据库不一致状态的原因有两系统故障造成数据库不一致状态的原因有两个,一是未完成的事务对数据库的更新可能个,一是未完成的事务对数据库的更新可能已经写入数据库;二是已提交事务对数据库已经写入数据库;二是已提交事务对数据库的更新可能还留在缓冲区还没来得及写入数的更新可能还留在缓冲区还没来得及写入数据库。因此恢复操作就是要撤销故障发生时据库。因此恢复操作就是要撤销故障发生时未完成的事务,重做已完成的事务。未完成的事务,重做已完成的事
22、务。第27页,共47页,编辑于2022年,星期六恢复策略恢复策略4其步骤是:其步骤是:正向扫描日志文件,找出故障发生前已经提交的事务,正向扫描日志文件,找出故障发生前已经提交的事务,将其事务标识记入重做(将其事务标识记入重做(REDO)队列。同时找出故障)队列。同时找出故障发生时尚未完成的事务,将其事务标识记入撤销发生时尚未完成的事务,将其事务标识记入撤销(UNDO)队列。)队列。对撤销队列中的各个事务进行对撤销队列中的各个事务进行UNDO处理。即反向扫描日处理。即反向扫描日志文件,对每个志文件,对每个UNDO事务的更新操作执行逆操作,即事务的更新操作执行逆操作,即将日志文件中的将日志文件中的
23、“更新前的值更新前的值”写入数据库。写入数据库。对重做队列中的各个事务进行对重做队列中的各个事务进行REDO处理。即正向扫描日处理。即正向扫描日志文件,对每个志文件,对每个REDO事务重新执行日志文件登记的操事务重新执行日志文件登记的操作,即将日志文件中的作,即将日志文件中的“更新后的值更新后的值”写入数据库。写入数据库。第28页,共47页,编辑于2022年,星期六恢复策略恢复策略4介质故障的恢复介质故障的恢复介质故障将全部或部分地破坏数据库甚至是介质故障将全部或部分地破坏数据库甚至是日志文件,其恢复的方法是:日志文件,其恢复的方法是:装入最新的数据库后备副本(离故障发生时刻最装入最新的数据库
24、后备副本(离故障发生时刻最近的转储副本),使数据库恢复到最近一次转储近的转储副本),使数据库恢复到最近一次转储时的一致状态。对于动态转储的副本,还需要装时的一致状态。对于动态转储的副本,还需要装入转储开始时刻的日志文件副本,将数据库恢复入转储开始时刻的日志文件副本,将数据库恢复到一致状态。到一致状态。装入转储以后的日志文件副本,重做已经完成的装入转储以后的日志文件副本,重做已经完成的事务。事务。第29页,共47页,编辑于2022年,星期六推迟更新技术推迟更新技术4推迟更新技术在日志中记录对事务推迟更新技术在日志中记录对事务T的所有更新的所有更新操作,并把所有对数据库的更新操作推迟到该事操作,并
25、把所有对数据库的更新操作推迟到该事务提交时执行。它遵循以下推迟更新协议:务提交时执行。它遵循以下推迟更新协议:每个事务在到达提交点之前不能更新数据库。每个事务在到达提交点之前不能更新数据库。一个事务的所有更新操作所对应的日志记录写入永恒存一个事务的所有更新操作所对应的日志记录写入永恒存储器之前,该事务不能到达提交点。储器之前,该事务不能到达提交点。4当一个事务到达提交点时,我们称该事务进入部分当一个事务到达提交点时,我们称该事务进入部分提交状态。推迟更新协议保证当一个事务部分提交提交状态。推迟更新协议保证当一个事务部分提交时,该事务的所有更新操作的信息已经记录在日志时,该事务的所有更新操作的信
26、息已经记录在日志中。中。第30页,共47页,编辑于2022年,星期六推迟更新技术推迟更新技术4当当T开始执行时,推迟更新技术在日志中写入开始执行时,推迟更新技术在日志中写入。如果。如果T执行执行Write(X)的操作,推迟更新技的操作,推迟更新技术在日志中写入术在日志中写入,其中,其中V1为为X的原始的原始值,值,V2为为Write(X)要写入的要写入的X值。当值。当T进入部分提交进入部分提交状态时,推迟更新技术在日志中写入状态时,推迟更新技术在日志中写入。接着,所有日志记录都写入永恒存储器。然后,对于接着,所有日志记录都写入永恒存储器。然后,对于日志中的每个形如日志中的每个形如的记录,将数据
27、库的记录,将数据库中中X数据项的值更新为数据项的值更新为V2。第31页,共47页,编辑于2022年,星期六延迟执行更新延迟执行更新SQL UPDATERAM中的数据页数据文件InsertDeleteUpdateCommit日志5.写日志操作4.写数据页1.事务开始2.执行更新命令6.确认7.写commit8.确认10.在恰当的时候写入数据文件第32页,共47页,编辑于2022年,星期六推迟更新技术推迟更新技术4试考虑如下数据库事务试考虑如下数据库事务T0和和T1,其中,其中A、B和和C的初的初值分别为值分别为1000,2000和和700,T0和和T1按照串行调度按照串行调度执行:执行:T0:r
28、ead(A)A=A-50 write(A)read(B)B=B+50 write(B)T1:read(C)C=C-100 write(C)第33页,共47页,编辑于2022年,星期六推迟更新技术推迟更新技术日志文件日志文件数据库数据库T0,startsT0,A,950T0,B,2050T0,commitA=950B=2050T1,startsT1,C,600T1,commitC=600第34页,共47页,编辑于2022年,星期六推迟更新技术推迟更新技术T0,startsT0,startsT0,startsT0,A,950T0,A,950T0,A,950T0,B,2050 T0,B,2050 T
29、0,B,2050T0,commit T0,commitT1,startsT1,startsT1,C,600T1,C,600T1,commit第35页,共47页,编辑于2022年,星期六即时更新技术即时更新技术4即时更新技术允许事务直接更新数据库。处于活即时更新技术允许事务直接更新数据库。处于活动状态的事务直接在数据库实施的更新称为非提动状态的事务直接在数据库实施的更新称为非提交更新。任何即时更新技术都必须遵循如下的即交更新。任何即时更新技术都必须遵循如下的即时更新协议:时更新协议:所有所有型日志记录安全的存储到永恒存储器型日志记录安全的存储到永恒存储器之前,不允许事务之前,不允许事务T更新数据
30、库。更新数据库。所有所有型日志记录安全的存储到永恒存储器型日志记录安全的存储到永恒存储器之前,不允许事务之前,不允许事务T提交。提交。4即时更新协议保证在系统故障发生时,每个运行事即时更新协议保证在系统故障发生时,每个运行事务的更新操作都安全地记录在日志中。务的更新操作都安全地记录在日志中。第36页,共47页,编辑于2022年,星期六即时更新技术即时更新技术4当当T开始执行时,开始执行时,被写入日志。被写入日志。在在T运行期间,当运行期间,当T发出一个发出一个Write(X)操操作时,作时,记录记录首先被写入日首先被写入日志,然后,直接在数据库上执行志,然后,直接在数据库上执行Write(X)
31、。当当T部分提交时,部分提交时,被写入日被写入日志。为满足即时更新协议的要求,在志。为满足即时更新协议的要求,在Write(X)直接作用到数据库之前,有关这直接作用到数据库之前,有关这个操作的日志记录必须安全地写入永恒个操作的日志记录必须安全地写入永恒存储器。存储器。第37页,共47页,编辑于2022年,星期六即时更新技术即时更新技术日志文件日志文件数据库数据库T0,startsT0,A,1000,950A=950T0,B,2000,2050B=2050T0,commitT1,startsT1,C,700,600C=600T1,commit第38页,共47页,编辑于2022年,星期六即时更新技
32、术即时更新技术T0,startsT0,startsT0,startsT0,A,1000,950T0,A,1000,950T0,A,1000,950T0,B,2000,2050T0,B,2000,2050T0,B,2000,2050T0,commitT0,commitT1,startsT1,startsT1,C,700,600T1,C,700,600T1,commit第39页,共47页,编辑于2022年,星期六具有检查点的恢复技术具有检查点的恢复技术4利用日志技术进行恢复时,恢复子系统利用日志技术进行恢复时,恢复子系统通常需要检查所有日志记录,这样将耗通常需要检查所有日志记录,这样将耗费大量时间
33、,同时也可能费大量时间,同时也可能REDO了一些已了一些已经写到数据库中的更新操作结果,因此经写到数据库中的更新操作结果,因此也浪费了时间。为此,提出了检查点技也浪费了时间。为此,提出了检查点技术。这种技术在日志文件中增加一类新术。这种技术在日志文件中增加一类新的记录检查点(的记录检查点(checkpoint)记录,增)记录,增加一个重新开始文件,并让恢复子系统加一个重新开始文件,并让恢复子系统在登录日志文件期间动态地维护日志。在登录日志文件期间动态地维护日志。第40页,共47页,编辑于2022年,星期六具有检查点的恢复技术具有检查点的恢复技术4检查点记录的内容包括:检查点记录的内容包括:建立
34、检查点时刻所有正在执行的事务清单。建立检查点时刻所有正在执行的事务清单。这些事务最近一个日志记录的地址。这些事务最近一个日志记录的地址。重新开始文件用来记录各个检查点记录在日重新开始文件用来记录各个检查点记录在日志文件中的地址。志文件中的地址。第41页,共47页,编辑于2022年,星期六具有检查点的恢复技术具有检查点的恢复技术4动态维护日志文件的方法是周期性地执行如下操动态维护日志文件的方法是周期性地执行如下操作:作:将当前日志缓存中的所有日志记录写入磁盘的日志文将当前日志缓存中的所有日志记录写入磁盘的日志文件上。件上。在日志文件上写入一个检查点记录在日志文件上写入一个检查点记录将当前数据缓存
35、的所有数据记录写入磁盘的数据库将当前数据缓存的所有数据记录写入磁盘的数据库中中把检查点记录在日志文件中地址写入一个重新开始把检查点记录在日志文件中地址写入一个重新开始文件。文件。第42页,共47页,编辑于2022年,星期六具有检查点的恢复技术具有检查点的恢复技术4使用检查点的方式可以改善效率,当事使用检查点的方式可以改善效率,当事务务T在一个检查点之前提交,在一个检查点之前提交,T对数据库对数据库所做的修改一定已经写入数据库,写入所做的修改一定已经写入数据库,写入时间是在这个检查点建立之前或建立之时间是在这个检查点建立之前或建立之时。这样在进行恢复处理时,没有必要时。这样在进行恢复处理时,没有
36、必要对事务对事务T进行进行REDO操作。操作。第43页,共47页,编辑于2022年,星期六具有检查点的恢复技术具有检查点的恢复技术时间T1T2T3T4T5Tc检查点Tf系统故障不要REDOREDOREDOUNDOUNDO第44页,共47页,编辑于2022年,星期六具有检查点的恢复技术具有检查点的恢复技术4系统用检查点方法进行恢复的步骤是:系统用检查点方法进行恢复的步骤是:在重新开始文件中找到最后一个检查点记录在日志文件中的在重新开始文件中找到最后一个检查点记录在日志文件中的地址,由该地址在日志文件中找到最后一个检查点记录。地址,由该地址在日志文件中找到最后一个检查点记录。由该检查点记录得到检查
37、点建立时刻所有正在运行的由该检查点记录得到检查点建立时刻所有正在运行的事务清单事务清单ACTIVE-LIST(暂时放入暂时放入UNDO-LIST)从检查点开始正向扫描日志文件从检查点开始正向扫描日志文件如果有新开始的事务如果有新开始的事务Ti,把,把Ti暂时放入暂时放入UNDO-LIST;如果有提交的事务如果有提交的事务Tj,把,把Tj从从UNDO-LIST队列移入到队列移入到REDO-LIST队列;队列;直到文件结束直到文件结束对对UNDO-LIST中的每一个事务执行中的每一个事务执行UNDO操作,对操作,对REDO-LIST中的每个事务执行中的每个事务执行REDO操作。操作。第45页,共4
38、7页,编辑于2022年,星期六数据库镜像数据库镜像4即根据即根据DBADBA要求,自动把整个数据库或其要求,自动把整个数据库或其中的关键数据复制到另一个磁盘上。每中的关键数据复制到另一个磁盘上。每当主数据库更新时,当主数据库更新时,DBMSDBMS自动把更新后自动把更新后的数据复制过去,即的数据复制过去,即DBMSDBMS自动保证镜像自动保证镜像数据与主数据的一致性。这样,一旦发数据与主数据的一致性。这样,一旦发生介质故障,不但可以继续由镜像磁盘生介质故障,不但可以继续由镜像磁盘提供服务,而且可以直接通过镜像磁盘提供服务,而且可以直接通过镜像磁盘进行数据库恢复。在没有故障时,镜像进行数据库恢复。在没有故障时,镜像磁盘还可以提供一定的并行性。磁盘还可以提供一定的并行性。第46页,共47页,编辑于2022年,星期六数据库镜像数据库镜像应用1镜像应用2应用3应用4readreadread复制update应用1镜像应用2应用3应用4readreadread恢复update第47页,共47页,编辑于2022年,星期六