第6章+数据库恢复技术+V12_第1页
第6章+数据库恢复技术+V12_第2页
第6章+数据库恢复技术+V12_第3页
第6章+数据库恢复技术+V12_第4页
第6章+数据库恢复技术+V12_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学以致用学以致用 用以促学用以促学120222022年年2 2月月9 9日星期三日星期三数据库原理及应用数据库原理及应用第第6章章 数据库恢复数据库恢复学以致用学以致用 用以促学用以促学2Click to add TitleClick to add Title1 1 事务概念事务概念1 1Click to add TitleClick to add Title2 2 数据库恢复概述数据库恢复概述2 2Click to add TitleClick to add Title2 2 数据库恢复实现技术数据库恢复实现技术3 3Click to add TitleClick to add Title1

2、 1 故障的种类及恢复策略故障的种类及恢复策略4 4Click to add TitleClick to add Title1 1 * *RAIDRAID5 5学以致用学以致用 用以促学用以促学3 n产生不一致的结果产生不一致的结果 u调价:故障可能使部分价格调整而另一部分价格没有调整。调价:故障可能使部分价格调整而另一部分价格没有调整。n并发执行的错误并发执行的错误 u并行执行应用程序可以提高性能并行执行应用程序可以提高性能u但可能数据相互覆盖但可能数据相互覆盖u例如:程序例如:程序1 1将将A A提价提价1010,程序,程序2 2将将A A涨价涨价1010元。元。n何时更新数据库何时更新数

3、据库u读数据库:将数据库中的数据先从磁盘读入内存,然后再将值赋予一读数据库:将数据库中的数据先从磁盘读入内存,然后再将值赋予一个变量。个变量。u写数据库:先将变量的值写入内存,然后再由内存写入磁盘。写数据库:先将变量的值写入内存,然后再由内存写入磁盘。u减少磁盘减少磁盘I/OI/O操作与防止数据不一致的权衡(内存中数据的存放时间)操作与防止数据不一致的权衡(内存中数据的存放时间) 学以致用学以致用 用以促学用以促学4 学以致用学以致用 用以促学用以促学5 n事务的显式定义事务的显式定义 BEGIN TRANSACTION BEGIN TRANSACTIONBEGIN TRANSACTION B

4、EGIN TRANSACTION SQL SQL 语句语句1 SQL 1 SQL 语句语句1 1 SQL SQL 语句语句2 SQL 2 SQL 语句语句2 2 COMMIT ROLLBACKCOMMIT ROLLBACKEND TRANSACTION END TRANSACTIONEND TRANSACTION END TRANSACTIONn没有显式地定义事务时,没有显式地定义事务时,DBMSDBMS按缺省为自动划分事务按缺省为自动划分事务学以致用学以致用 用以促学用以促学6 n原子性(原子性(AtomicityAtomicity)u事务的所有操作在数据库中要么全部正确反映,要么全部不反映

5、。事务的所有操作在数据库中要么全部正确反映,要么全部不反映。u解决不一致问题。解决不一致问题。u在系统崩溃后,在系统崩溃后,DBMSDBMS将恢复或撤销系统崩溃时处于活动状态的事务对将恢复或撤销系统崩溃时处于活动状态的事务对数据库产生的影响,从而保证事务的原子性。数据库产生的影响,从而保证事务的原子性。 u事务原子性由事务管理部件(事务原子性由事务管理部件(Transaction-Management ComponentTransaction-Management Component)处理。处理。n一致性(一致性(ConsistencyConsistency)u是指当事务完成时,必须使所有数据

6、都具有一致的状态。是指当事务完成时,必须使所有数据都具有一致的状态。u主要由应用开发人员来确保。主要由应用开发人员来确保。学以致用学以致用 用以促学用以促学7 n隔离性(隔离性(IsolationIsolation)u当多个事务并发执行时,一个事务的执行不能被其他事务干扰。当多个事务并发执行时,一个事务的执行不能被其他事务干扰。u解决前面提到的并发执行带来的错误问题。解决前面提到的并发执行带来的错误问题。u由于性能的原因,需要对事务进行交叉调度,但交错调度的效果应该由于性能的原因,需要对事务进行交叉调度,但交错调度的效果应该和某个串行调度的结果是一致的。和某个串行调度的结果是一致的。u隔离性通

7、过数据库系统中的并发控制部件(隔离性通过数据库系统中的并发控制部件(Concurrency-Control Concurrency-Control ComponentComponent)处理。)处理。n持续性(持续性(DurabilityDurability)u一个事务一旦提交,它对数据库中数据的改变应该是永久性的,即使一个事务一旦提交,它对数据库中数据的改变应该是永久性的,即使系统可能出现故障。系统可能出现故障。u持续性由数据库系统中的恢复管理部件(持续性由数据库系统中的恢复管理部件(Recovery-Management Recovery-Management ComponentCompo

8、nent)的软件部件负责。)的软件部件负责。学以致用学以致用 用以促学用以促学8Click to add TitleClick to add Title1 1 事务概念事务概念1 1Click to add TitleClick to add Title2 2 数据库恢复概述数据库恢复概述2 2Click to add TitleClick to add Title2 2 数据库恢复实现技术数据库恢复实现技术3 3Click to add TitleClick to add Title1 1 故障的种类及恢复策略故障的种类及恢复策略4 4Click to add TitleClick to a

9、dd Title1 1 * *RAIDRAID5 5学以致用学以致用 用以促学用以促学9 n数据库系统对付故障的两种措施数据库系统对付故障的两种措施u尽可能提高系统的可靠性;尽可能提高系统的可靠性;u在系统发生故障后,把数据库恢复到一致状态。在系统发生故障后,把数据库恢复到一致状态。n恢复机制涉及两个关键问题恢复机制涉及两个关键问题u如何建立冗余数据如何建立冗余数据u如何利用冗余数据实施数据库恢复如何利用冗余数据实施数据库恢复n恢复技术是衡量数据库管理系统优劣的重要指标恢复技术是衡量数据库管理系统优劣的重要指标 学以致用学以致用 用以促学用以促学10Click to add TitleClic

10、k to add Title1 1 事务概念事务概念1 1Click to add TitleClick to add Title2 2 数据库恢复概述数据库恢复概述2 2Click to add TitleClick to add Title2 2 数据库恢复实现技术数据库恢复实现技术3 3Click to add TitleClick to add Title1 1 故障的种类及恢复策略故障的种类及恢复策略4 4Click to add TitleClick to add Title1 1 * *RAIDRAID5 5学以致用学以致用 用以促学用以促学11 n恢复机制常用的技术恢复机制常用

11、的技术u记录日志文件记录日志文件u数据转储数据转储 学以致用学以致用 用以促学用以促学12 n日志是日志是DBMSDBMS用来记录事务对数据库的更新操作的文件,用来记录事务对数据库的更新操作的文件,是日志记录的序列是日志记录的序列 n日志记录描述内容主要包括:日志记录描述内容主要包括:u事务标识符事务标识符: :执行写操作事务的唯一标识符。执行写操作事务的唯一标识符。u数据项标识符数据项标识符: :事务操作对象的唯一标识符。事务操作对象的唯一标识符。u前像(前像(BIBI): :更新前数据的旧值。更新前数据的旧值。u后像(后像(AIAI): :更新后数据的新值。更新后数据的新值。 n日志记录形

12、式包括:日志记录形式包括:u:表示事务:表示事务T T已开始。已开始。u:表示事务:表示事务T T已提交。已提交。u:表示事务:表示事务T T不能成功完成,已中止。不能成功完成,已中止。u:表示事务:表示事务T T对数据项对数据项X X执行写操作。写之前的旧值为执行写操作。写之前的旧值为V1V1,写之后的新值为写之后的新值为V2V2。学以致用学以致用 用以促学用以促学13 n日志要求日志要求u每次事务执行写操作,必须在数据库修改前建立此次写操作的日志记每次事务执行写操作,必须在数据库修改前建立此次写操作的日志记录录 u日志必须存储在稳定存储器上日志必须存储在稳定存储器上 u稳定存储器中的日志记

13、录顺序必须与写入日志缓冲区中的日志记录顺稳定存储器中的日志记录顺序必须与写入日志缓冲区中的日志记录顺序完全一样(块写)序完全一样(块写) n先写日志规则先写日志规则u在主存中的数据块输出到数据库前,所有与该数据块中数据有关的日在主存中的数据块输出到数据库前,所有与该数据块中数据有关的日志记录必须已输出到稳定存储器上志记录必须已输出到稳定存储器上学以致用学以致用 用以促学用以促学14 n事务的执行时,后像(事务的执行时,后像(AIAI)在事务提交后才写入数据库)在事务提交后才写入数据库u日志中记录所有的数据库修改日志中记录所有的数据库修改u一个事务的所有写操作延迟到事务的操作结束时才执行,以保证

14、事务一个事务的所有写操作延迟到事务的操作结束时才执行,以保证事务的原子性。的原子性。n事务恢复事务恢复u忽略未完成的事务;重复已提交事务的影响忽略未完成的事务;重复已提交事务的影响u恢复过程恢复过程Redo(Ti)Redo(Ti):将事务:将事务i i更新的所有数据项的值设为新值更新的所有数据项的值设为新值n简化日志内容结构简化日志内容结构u日志记录日志记录TV1:事务对数据项执行写操作,写入新值:事务对数据项执行写操作,写入新值V1V1 事务事务T的执行步骤的执行步骤在在T开始执行前,向日志中写入记录开始执行前,向日志中写入记录T的一次的一次write(X)操作导致向日志中写入一条新记录)操

15、作导致向日志中写入一条新记录最后,当最后,当T全部操作结束,向日志中写入记录全部操作结束,向日志中写入记录 学以致用学以致用 用以促学用以促学15 n举例:后像后写举例:后像后写u药品价格调整:设药品价格调整:设T1T1事务中,药品事务中,药品A A上调上调10%10%,药品,药品B B下浮下浮5%5%。T1: read(A)A:=A+A*0.1write(A)read(B)B:=B-B*0.05Write(B)A=20,B=30学以致用学以致用 用以促学用以促学16 n恢复管理器执行步骤:恢复管理器执行步骤:u 从后向前扫描日志,将提交的事务放入队列从后向前扫描日志,将提交的事务放入队列re

16、do-listredo-list。u 从前往后扫描日志。对遇到的每一从前往后扫描日志。对遇到的每一记录记录: :l 如果如果T不是不是redo-list中的事务,则什么也不做。中的事务,则什么也不做。l 如果如果T是是redo-list中的事务,则为数据项中的事务,则为数据项X写入值写入值V1。u 对每个未完成的事务,在日志中写入一个对每个未完成的事务,在日志中写入一个记录并刷新日记录并刷新日志。志。学以致用学以致用 用以促学用以促学17 n恢复管理器对故障发生在不同时刻的不同处理恢复管理器对故障发生在不同时刻的不同处理 REDO再次再次REDO 若若在磁盘,同在磁盘,同(C) 若若不在磁盘,

17、同不在磁盘,同(a)学以致用学以致用 用以促学用以促学18 n后像前写:后像(后像前写:后像(AIAI)在事务提交前完全写入数据库)在事务提交前完全写入数据库u在日志中记录所有的数据库修改,一个事务的所有写操作在事务提交在日志中记录所有的数据库修改,一个事务的所有写操作在事务提交前已写入磁盘前已写入磁盘u在恢复时忽略已提交的事务;撤销未完成事务的影响。在恢复时忽略已提交的事务;撤销未完成事务的影响。n执行规则:执行规则:u日志先写:如果事务日志先写:如果事务T T改变了数据项改变了数据项X X,则记录变化的日志记录必须在,则记录变化的日志记录必须在数据项的新值写到磁盘前写入稳定的存储器;数据项

18、的新值写到磁盘前写入稳定的存储器;u如果事务提交,则如果事务提交,则日志记录必须在事务改变的所有数据项日志记录必须在事务改变的所有数据项的新值写入到磁盘后再写入稳定的存储器,但应尽快。的新值写入到磁盘后再写入稳定的存储器,但应尽快。事务事务T的执行步骤:的执行步骤:在在T T开始执行前,向日志中写入记录开始执行前,向日志中写入记录T T的一次的一次writewrite(X X)操作导致向日志中写入一条新记录)操作导致向日志中写入一条新记录当当T T全部操作结束,被改变的所有数据项已写入磁盘后向日志全部操作结束,被改变的所有数据项已写入磁盘后向日志中写入记录中写入记录。学以致用学以致用 用以促学

19、用以促学19 n事务恢复过程事务恢复过程uUndoUndo(i i):将事务):将事务i i更新的所有数据项的值设为旧值。更新的所有数据项的值设为旧值。n简化日志记录内容:省去新值字段简化日志记录内容:省去新值字段u日志记录日志记录TV1 表示:事务对数据项执行写操作,写前的旧表示:事务对数据项执行写操作,写前的旧值为值为V1V1。学以致用学以致用 用以促学用以促学20 n恢复管理器执行步骤恢复管理器执行步骤u首先对日志文件从后向前进行扫描,将有首先对日志文件从后向前进行扫描,将有TCOMMIT记录的事务放入记录的事务放入redo-listredo-list队列。队列。u然后对日志文件从后向前

20、进行扫描然后对日志文件从后向前进行扫描l 对遇到的每一个对遇到的每一个记录,若事务记录,若事务T在在redo-list队列中,则恢复队列中,则恢复管理器什么都不做管理器什么都不做l 对遇到的每一个对遇到的每一个记录,若事务记录,若事务T不在不在redo-list队列中,则恢队列中,则恢复管理器将数据项复管理器将数据项X在数据库中的值改为旧值在数据库中的值改为旧值V1。 学以致用学以致用 用以促学用以促学21 n恢复管理器对故障发生在不同时刻的不同处理恢复管理器对故障发生在不同时刻的不同处理若若在在磁盘,磁盘,NO ACTION若若不不在磁盘,在磁盘,UNDO补补UNDOUNDOUNDO学以致用

21、学以致用 用以促学用以促学22 n后像前后写:后像(后像前后写:后像(AIAI)在事务提交前)在事务提交前后写入数据库后写入数据库u被修改数据项写入磁盘的时间可以在日志记录被修改数据项写入磁盘的时间可以在日志记录TCOMMIT之前进行,也可以放在之后进行之前进行,也可以放在之后进行 u写入的更新日志记录由个部分组成。日志记录写入的更新日志记录由个部分组成。日志记录TV2表示:事务对数据项执行写表示:事务对数据项执行写操作,写前的旧值为操作,写前的旧值为V1V1,写后的新值为,写后的新值为V2V2n执行规则执行规则u日志先写日志先写被更新数据项写入磁盘前,更新记被更新数据项写入磁盘前,更新记录录

22、TV2必须已写到稳定存储器上。必须已写到稳定存储器上。n恢复过程恢复过程uUndo (Ti)Undo (Ti):将未提交事务:将未提交事务TiTi更新的所有数据项的更新的所有数据项的值设为旧值。值设为旧值。uRedo (Ti)Redo (Ti):将已提交事务:将已提交事务TiTi更新的所有数据项的更新的所有数据项的值设为新值。值设为新值。学以致用学以致用 用以促学用以促学23 n恢复管理器执行步骤恢复管理器执行步骤u首先对日志文件从后向前进行扫描,将有首先对日志文件从后向前进行扫描,将有TCOMMIT记录和没记录和没有有TCOMMIT记录的事务分别放入两个队列:记录的事务分别放入两个队列:re

23、do-listredo-list队列,队列,undo-listundo-list队列队列u从前向后再次扫描日志记录,重新执行从前向后再次扫描日志记录,重新执行redo-listredo-list队列中的事务队列中的事务。u从后向前再次扫描日志记录,撤销从后向前再次扫描日志记录,撤销undo-listundo-list队列中的事务。队列中的事务。 学以致用学以致用 用以促学用以促学24 n恢复管理器对故障发生在不同时刻的不同处理恢复管理器对故障发生在不同时刻的不同处理UNDOUNDOUNDO或REDO学以致用学以致用 用以促学用以促学25 n等幂操作等幂操作u多次执行与执行一次的效果是完全相同的

24、。多次执行与执行一次的效果是完全相同的。u无论回滚(无论回滚(UndoUndo)操作还是重做()操作还是重做(RedoRedo)操作,恢复的步骤都是)操作,恢复的步骤都是等幂的。等幂的。u当系统从上一次崩溃中恢复时再次发生崩溃,恢复机制仍可再次当系统从上一次崩溃中恢复时再次发生崩溃,恢复机制仍可再次重复恢复过程,前一次恢复过程中是否已将数据项的值更新为旧重复恢复过程,前一次恢复过程中是否已将数据项的值更新为旧值或新值是无关紧要的。值或新值是无关紧要的。 学以致用学以致用 用以促学用以促学26 n利用日志进行数据库恢复时,恢复管理器必须检查利用日志进行数据库恢复时,恢复管理器必须检查日志,确定哪

25、些事务需要日志,确定哪些事务需要REDOREDO,哪些事务需要,哪些事务需要UNDOUNDO。一般来说,需要搜索整个日志才能做出决定。一般来说,需要搜索整个日志才能做出决定。n搜索整个日志的困难搜索整个日志的困难u搜索整个日志将耗费大量的时间。搜索整个日志将耗费大量的时间。u很多需要很多需要REDOREDO处理的事务其更新已经写入数据库,重新执行这些处理的事务其更新已经写入数据库,重新执行这些操作会浪费大量的时间,使恢复过程变得更长。操作会浪费大量的时间,使恢复过程变得更长。n解决办法解决办法u系统定期或不定期地建立检查点(系统定期或不定期地建立检查点(CheckPointCheckPoint

26、),保存数据库的),保存数据库的状态。状态。学以致用学以致用 用以促学用以促学27 n创建检查点方法创建检查点方法u提交一致性检查点提交一致性检查点u高速缓存一致性检查点高速缓存一致性检查点u模糊一致性检查点模糊一致性检查点学以致用学以致用 用以促学用以促学28 n提交一致性检查点提交一致性检查点u新的事务不能开始直到检查新的事务不能开始直到检查点完成。点完成。u 现有的事务继续执行直到提现有的事务继续执行直到提交或中止,并且相关日志都交或中止,并且相关日志都写入稳定存储器。写入稳定存储器。u将当前日志缓冲区中的日志将当前日志缓冲区中的日志记录写回稳定存储器中的日记录写回稳定存储器中的日志文件

27、。志文件。u将日志记录将日志记录写写入稳定存储器。检查点操作入稳定存储器。检查点操作完成。完成。 学以致用学以致用 用以促学用以促学29 n高速缓存一致性检查点高速缓存一致性检查点u新的事务不能开始直到检查新的事务不能开始直到检查点完成。点完成。u已存在的事务不允许执行新已存在的事务不允许执行新的更新操作,如写缓冲块或的更新操作,如写缓冲块或写日志记录。写日志记录。u将当前日志缓冲区中的日志将当前日志缓冲区中的日志记录写回稳定存储器中的日记录写回稳定存储器中的日志文件。志文件。u将当前数据缓冲区中的所有将当前数据缓冲区中的所有数据记录写入磁盘。数据记录写入磁盘。u将日志记录将日志记录check

28、pointL写入稳定存储器,其中写入稳定存储器,其中L L是所是所有活动事务的列表。有活动事务的列表。学以致用学以致用 用以促学用以促学30 n用户等待问题用户等待问题u高速缓存一致性检查点只需将所有当前数据缓冲区中的数据高速缓存一致性检查点只需将所有当前数据缓冲区中的数据记录写入磁盘,而无需等待事务的提交,这相对于提交一致记录写入磁盘,而无需等待事务的提交,这相对于提交一致性检查点而言是一个提高。性检查点而言是一个提高。u但在这个过程中,所有事务不能执行动作,对于用户而言也但在这个过程中,所有事务不能执行动作,对于用户而言也就是需要等待。就是需要等待。n模糊一致性检查点模糊一致性检查点u允许

29、事务在允许事务在记录写入日志后但在修改过的缓存记录写入日志后但在修改过的缓存块写到磁盘前做更新。块写到磁盘前做更新。 u系统将最后一个完善检查点记录在日志中的位置存在磁盘的系统将最后一个完善检查点记录在日志中的位置存在磁盘的固定位置固定位置last-checkpointlast-checkpointu系统在写入系统在写入记录时不更新改信息,而是在写记录时不更新改信息,而是在写 CHECKPOINT记录前,创建所有修改过的缓冲块的列表。记录前,创建所有修改过的缓冲块的列表。u只有所有该列表中的缓冲块都输出到磁盘上以后,只有所有该列表中的缓冲块都输出到磁盘上以后,last-last-checkpo

30、intcheckpoint信息才会更新。信息才会更新。学以致用学以致用 用以促学用以促学31 nDBADBA定期地将整个数据库复制到某种存储介质(定期地将整个数据库复制到某种存储介质(如磁带、磁盘、光盘等)上保存起来的过程。如磁带、磁盘、光盘等)上保存起来的过程。u备用的数据文本称为后备副本或后援副本。备用的数据文本称为后备副本或后援副本。u数据转储是数据库恢复中采用的基本技术。数据转储是数据库恢复中采用的基本技术。n转储方法分类转储方法分类u静态转储与动态转储静态转储与动态转储u完全转储与增量转储完全转储与增量转储学以致用学以致用 用以促学用以促学32 n在系统中无运行事务时进行转储在系统中

31、无运行事务时进行转储n转储开始时数据库处于一致性状态转储开始时数据库处于一致性状态n转储期间不允许对数据库的任何存取、修改活动转储期间不允许对数据库的任何存取、修改活动n优点:实现简单优点:实现简单n缺点:降低了数据库的可用性缺点:降低了数据库的可用性u转储必须等用户事务结束转储必须等用户事务结束u新的事务必须等转储结束新的事务必须等转储结束学以致用学以致用 用以促学用以促学33 n转储操作与用户事务并发进行转储操作与用户事务并发进行n转储期间允许对数据库进行存取或修改转储期间允许对数据库进行存取或修改n优点优点u不用等待正在运行的用户事务结束不用等待正在运行的用户事务结束u不会影响新事务的运

32、行不会影响新事务的运行n缺点缺点u不能保证副本中的数据正确有效不能保证副本中的数据正确有效n利用动态转储得到的副本进行故障恢复利用动态转储得到的副本进行故障恢复u需要把动态转储期间各事务对数据库的修改活动登记下来,需要把动态转储期间各事务对数据库的修改活动登记下来,建立日志文件建立日志文件u后备副本加上日志文件才能把数据库恢复到某一时刻的正确后备副本加上日志文件才能把数据库恢复到某一时刻的正确状态状态学以致用学以致用 用以促学用以促学34 n完全转储完全转储: : 每次转储全部数据库每次转储全部数据库n增量转储增量转储: : 只转储上次转储后更新过的数据只转储上次转储后更新过的数据n完全转储与

33、增量转储比较完全转储与增量转储比较u从恢复角度看,使用完全转储得到的后备副本进行恢复往往从恢复角度看,使用完全转储得到的后备副本进行恢复往往更方便更方便u但如果数据库很大,事务处理又十分频繁,则增量转储方式但如果数据库很大,事务处理又十分频繁,则增量转储方式更实用更有效更实用更有效学以致用学以致用 用以促学用以促学35Click to add TitleClick to add Title1 1 事务概念事务概念1 1Click to add TitleClick to add Title2 2 数据库恢复概述数据库恢复概述2 2Click to add TitleClick to add T

34、itle2 2 数据库恢复实现技术数据库恢复实现技术3 3Click to add TitleClick to add Title1 1 故障的种类及恢复策略故障的种类及恢复策略4 4Click to add TitleClick to add Title1 1 * *RAIDRAID5 5学以致用学以致用 用以促学用以促学36 n事务故障事务故障 u逻辑错误:事务由于内部条件(如非法输入、溢出等)无法继续正常执逻辑错误:事务由于内部条件(如非法输入、溢出等)无法继续正常执行。行。u系统错误:系统进入一种不良状态(如死锁),事务无法继续正常执行系统错误:系统进入一种不良状态(如死锁),事务无法

35、继续正常执行。u事务故障使得事务无法达到预期的终点,数据库可能处于不一致的状态事务故障使得事务无法达到预期的终点,数据库可能处于不一致的状态。恢复机制强行回滚该事务,撤销该事务对数据库做的任何修改。恢复机制强行回滚该事务,撤销该事务对数据库做的任何修改。n系统故障系统故障u包括硬件故障、数据库软件或操作系统的漏洞造成的系统停止运转。它包括硬件故障、数据库软件或操作系统的漏洞造成的系统停止运转。它导致系统易失性存储器中的内容丢失,事务处理停止,但非易失性存储导致系统易失性存储器中的内容丢失,事务处理停止,但非易失性存储器中的内容不会受到破坏。器中的内容不会受到破坏。n介质故障介质故障u在数据传送

36、操作过程中由于磁头损坏或故障造成磁盘块上的内容丢失。在数据传送操作过程中由于磁头损坏或故障造成磁盘块上的内容丢失。u需使用其他非易失性存储器上的数据库后备副本进行故障的恢复。需使用其他非易失性存储器上的数据库后备副本进行故障的恢复。学以致用学以致用 用以促学用以促学37 n事务故障的恢复:利用日志文件撤销此事务对数据事务故障的恢复:利用日志文件撤销此事务对数据库已经进行做过的修改。库已经进行做过的修改。u后像后写:发生故障时数据库中的数据并没有发生变化,所有数后像后写:发生故障时数据库中的数据并没有发生变化,所有数据项的修改只是在日志文件中有记录。恢复管理器忽略这些未完据项的修改只是在日志文件

37、中有记录。恢复管理器忽略这些未完成的事务。成的事务。u后像前写:发生故障时,系统可能已将部分或全部数据项的修改后像前写:发生故障时,系统可能已将部分或全部数据项的修改写入磁盘,使用日志文件撤销(写入磁盘,使用日志文件撤销(UNDOUNDO)此事务对数据库的修改。)此事务对数据库的修改。 u后像前后写:发生故障时系统仍可能已将部分数据项的修改写入后像前后写:发生故障时系统仍可能已将部分数据项的修改写入磁盘。使用日志文件撤销(磁盘。使用日志文件撤销(UNDOUNDO)此事务对数据库的修改。)此事务对数据库的修改。学以致用学以致用 用以促学用以促学38 n系统故障的恢复:利用日志文件回滚(系统故障的

38、恢复:利用日志文件回滚(UNDOUNDO)未完成)未完成事务,重做(事务,重做(REDOREDO)已提交事务。)已提交事务。u当系统崩溃重新启动时,它构造两个队列:当系统崩溃重新启动时,它构造两个队列:undo-listundo-list存放需要撤存放需要撤销的事务标识符,销的事务标识符,redo-listredo-list存放需要重做得事务标识符。存放需要重做得事务标识符。u这两个队列刚开始时都是空的。这两个队列刚开始时都是空的。u队列构造步骤如下:队列构造步骤如下:l 系统反向扫描日志,直到发现第一个系统反向扫描日志,直到发现第一个记录。记录。l 对每一个对每一个记录,将记录,将Ti加入加

39、入redo-list。l 对每一个对每一个记录,如果记录,如果Ti不属于不属于redo-list,则将,则将Ti加入加入undo-list。学以致用学以致用 用以促学用以促学39 n系统故障的恢复:后像后写系统故障的恢复:后像后写u对对undo-listundo-list中的事务,在日志中写入一个中的事务,在日志中写入一个TiABORT记录并刷新日志记录并刷新日志。u对对redo-listredo-list中的事务执行中的事务执行REDOREDO操作:从前面发现的操作:从前面发现的checkpointcheckpoint记录记录开始,正向扫描日志文件,对遇到的每一个开始,正向扫描日志文件,对遇

40、到的每一个TiV1记录,将数据记录,将数据库中的库中的X X数据项更新为新值数据项更新为新值V1V1。 n系统故障的恢复:后像前写系统故障的恢复:后像前写u对对undo-listundo-list中的某一事务,执行中的某一事务,执行UNDOUNDO操作:操作:u再次反向扫描日志文件,对遇到的每一个再次反向扫描日志文件,对遇到的每一个TiV1记录,将数据库记录,将数据库中的中的X X数据项更新为旧值数据项更新为旧值V1V1,扫描到,扫描到TiSTART记录时,扫描停止。记录时,扫描停止。u在日志中写入一个在日志中写入一个TiABORT记录并刷新日志。记录并刷新日志。u重复上两个步骤,直到处理完撤

41、销队列中的每一个事务。重复上两个步骤,直到处理完撤销队列中的每一个事务。 学以致用学以致用 用以促学用以促学40 n系统故障的恢复:后像前后写系统故障的恢复:后像前后写u系统重新反向扫描日志文件,对系统重新反向扫描日志文件,对undo-listundo-list中的每一事务执行中的每一事务执行UNDOUNDO操操作,即对遇到的每一个作,即对遇到的每一个TiV2记录,将数据库中的记录,将数据库中的X X数据数据项更新为旧值项更新为旧值V1V1。u在日志中写入一个在日志中写入一个TiABORT记录并刷新日志。当记录并刷新日志。当undo-listundo-list中所中所有事务有事务TiTi所对应

42、的所对应的TiSTART记录都找到时,扫描结束。记录都找到时,扫描结束。u系统找出日志中最后一条系统找出日志中最后一条记录。记录。u系统由最后一条系统由最后一条记录开始,正向扫描日志文件,对记录开始,正向扫描日志文件,对redo-listredo-list中的事务中的事务TiTi的每一个日志记录执行的每一个日志记录执行redoredo操作。即对遇到的操作。即对遇到的每一个每一个TiV2记录,将数据库中的记录,将数据库中的X X数据项更新为新值数据项更新为新值V2V2。 学以致用学以致用 用以促学用以促学41 n装入最近的完全转储后备副本。装入最近的完全转储后备副本。u若数据库副本是动态转储的,

43、还需要同时装入转储开始时刻的日志若数据库副本是动态转储的,还需要同时装入转储开始时刻的日志文件副本,利用恢复系统故障的方法将数据库恢复到某个一致性状文件副本,利用恢复系统故障的方法将数据库恢复到某个一致性状态。态。n如果有后续的增量转储,按照从前往后的顺序,根据如果有后续的增量转储,按照从前往后的顺序,根据增量转储来修改数据库。增量转储来修改数据库。n装入转储结束后的日志文件副本,重做已完成的事务装入转储结束后的日志文件副本,重做已完成的事务。u首先反向扫描日志文件,找出故障发生时已经提交的事务,将事务首先反向扫描日志文件,找出故障发生时已经提交的事务,将事务标识符写入标识符写入redo-li

44、stredo-list。u然后正向扫描日志文件,对然后正向扫描日志文件,对redo-listredo-list中的所有事务进行中的所有事务进行redoredo操作。操作。 学以致用学以致用 用以促学用以促学42Click to add TitleClick to add Title1 1 事务概念事务概念1 1Click to add TitleClick to add Title2 2 数据库恢复概述数据库恢复概述2 2Click to add TitleClick to add Title2 2 数据库恢复实现技术数据库恢复实现技术3 3Click to add TitleClick to

45、 add Title1 1 故障的种类及恢复策略故障的种类及恢复策略4 4Click to add TitleClick to add Title1 1 * *RAIDRAID5 5学以致用学以致用 用以促学用以促学43 n冗余磁盘阵列冗余磁盘阵列(Redundent Array of Independent Disks(Redundent Array of Independent Disks,RAID)RAID)uRAIDRAID将一组磁盘驱动器用某种逻辑方式联系起来,作为逻辑上的一个磁将一组磁盘驱动器用某种逻辑方式联系起来,作为逻辑上的一个磁盘驱动器来使用。盘驱动器来使用。u一般情况下,组

46、成的逻辑磁盘驱动器的容量要小于各个磁盘驱动器容量一般情况下,组成的逻辑磁盘驱动器的容量要小于各个磁盘驱动器容量的总和。的总和。uRAIDRAID通过冗余技术,提供一个高级别的数据保护。通过冗余技术,提供一个高级别的数据保护。uRAIDRAID的具体实现可以靠硬件也可以靠软件,的具体实现可以靠硬件也可以靠软件,Windows NTWindows NT操作系统就提供操作系统就提供软件软件RAIDRAID功能。功能。n优点优点u成本低,功耗小,传输速率高成本低,功耗小,传输速率高 u可以提供容错功能可以提供容错功能 u具备数据校验(具备数据校验(ParityParity)功能)功能 uRAIDRAID比起传统的大直径磁盘驱动器来,在同样的容量下,价格要低许多比起传统的大直径磁盘驱动器来,在同样的容量下,价格要低许多 学以致用学以致用 用以促学用以促学44 nRAIDRAID的分级的分级uRAID 0RAID 0(StripeStripe):无冗余无校验的磁盘阵列,并行读):无冗余无校验的磁盘阵列,并行读/ /写于多个磁写于多个磁盘上。盘上。l R

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论