《数据库系统概论第10章数据库恢复技术.ppt》由会员分享,可在线阅读,更多相关《数据库系统概论第10章数据库恢复技术.ppt(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第第第1010章章章章 数据库恢复技术数据库恢复技术数据库恢复技术数据库恢复技术 10.1 事务的基本概念事务的基本概念 10.2 数据库恢复概述数据库恢复概述 10.3 故障的种类故障的种类 10.4 恢复的实现技术恢复的实现技术10.5 恢复策略恢复策略 10.6 具有检查点的恢复技术具有检查点的恢复技术 10.7 数据库镜像数据库镜像110.1 事务的基本概念事务的基本概念事务事务是用户定义的一个数据库操作序列是用户定义的一个数据库操作序列,这些操作这些操作要么全做要么全不做要么全做要么全不做,是一个不可分割的工作是一个不可分割的工作单位单位.事务的定义事务的定义:开始开始提交提交回滚
2、回滚Begin transactioncommitrollback事务定义的方式事务定义的方式:用户显式控制用户显式控制系统自动控制系统自动控制2事务的特性事务的特性:1.原子性原子性(Atomicity)事务是数据库的逻辑工作单位事务是数据库的逻辑工作单位,事务中包括的诸操作事务中包括的诸操作要么都做要么都做,要么都不做要么都不做.2.一致性一致性(Consistency)事务执行的结果必须是使数据库从一个一致性状态变事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态到另一个一致性状态.3.隔离性隔离性(Isolation)一个事务的执行不能被其它事务干扰一个事务的执行不能被其
3、它事务干扰.即并发执行的即并发执行的各个事务之间不能互相干扰各个事务之间不能互相干扰.4.持续性持续性(Durability)指一个事务一旦提交指一个事务一旦提交,它对数据库中数据的改变就应它对数据库中数据的改变就应该是永久性的该是永久性的.3事务事务ACID特性可能遭到破坏的因素是特性可能遭到破坏的因素是:(1)多个事务并行运行时多个事务并行运行时,不同事务的操作交叉执行不同事务的操作交叉执行;(2)事务在运行过程中被强行停止事务在运行过程中被强行停止;7.2数据库恢复概述数据库恢复概述数据库恢复数据库恢复:数据库管理系统具有的把数据库从错误状态数据库管理系统具有的把数据库从错误状态 恢复到
4、某一已知的正确状态功能恢复到某一已知的正确状态功能.7.3 故障的种类故障的种类1.事务内部的故障事务内部的故障不可预期不可预期可预期可预期4可预期的例子可预期的例子:银行转账事务银行转账事务,这个事务把一笔金额从一个账户甲转这个事务把一笔金额从一个账户甲转给另一个账户乙给另一个账户乙.begin transaction balance1=balance1-amount;if (balance10)then print (“金额不足金额不足,不能转帐不能转帐”);rollback;else balance2=balance2+amount;commit;5不可预期例子不可预期例子:begin
5、transaction fac=1;for i=1 to n do fac=fac*i;.commit;事务故障的恢复:事务故障的恢复:时间时间T1T2T3T4事务事务T2发生故障点发生故障点在不影响其他事务运行的情况下,对该在不影响其他事务运行的情况下,对该事务执行事务撤销(事务执行事务撤销(undo)62.系统故障系统故障 系统故障是指造成系统停止运转的任何事件系统故障是指造成系统停止运转的任何事件,使得系使得系统要重新启动统要重新启动.系统故障的恢复系统故障的恢复:尚未完成的事务尚未完成的事务事务撤销事务撤销(undo)已完成的事务已完成的事务重做重做(redo)时间时间T1T2T3T4
6、系统故障发生点系统故障发生点73.介质故障介质故障4.计算机病毒计算机病毒总结总结:数据库被破坏数据库被破坏:事务内部故障、系统故障、介质故障事务内部故障、系统故障、介质故障介质故障、计算机病毒介质故障、计算机病毒数据库没有破坏数据库没有破坏,数据不正确数据不正确:7.4 恢复的实现技术恢复的实现技术恢复的实现步骤:恢复的实现步骤:(1)如何建立冗余数据如何建立冗余数据;(2)如何利用这些冗余数据实施数据库恢复如何利用这些冗余数据实施数据库恢复;恢复的基本原理:恢复的基本原理:冗余冗余(1)装入装入数据库发生介质故障前某个时刻的数据数据库发生介质故障前某个时刻的数据副本副本;(2)重做自此时始
7、的所有重做自此时始的所有成功事务成功事务,将这些事务已提交的结果重新记入数据库,将这些事务已提交的结果重新记入数据库;装入装入发生故障前某个时刻的数据发生故障前某个时刻的数据副本副本;87.4.1 数据转储数据转储数据转储数据转储:DBA定期地将整个数据库复制到磁带或另一个定期地将整个数据库复制到磁带或另一个 磁盘上保存起来的过程磁盘上保存起来的过程.正常运行正常运行TaTbTf转储转储运行事务运行事务故障发生点故障发生点恢复恢复重装后备副本重装后备副本重新运行事务重新运行事务9正常运行正常运行TaTbTf静态转储静态转储运行事务运行事务故障发生点故障发生点恢复恢复重装后备副本重装后备副本重新
8、运行事务重新运行事务转储状态转储状态静态转储静态转储动态转储动态转储(1)静态转储静态转储:在系统中无运行事务时进行的转储操作在系统中无运行事务时进行的转储操作.静静态态 转储得到的一定是一个数据一致性的副本转储得到的一定是一个数据一致性的副本.10(2)动态转储动态转储:在转储期间允许对数据库进行存取或修改在转储期间允许对数据库进行存取或修改.即即 转储和用户事务可以并发执行转储和用户事务可以并发执行.动态转储不一动态转储不一 定得到一个数据一致的副本定得到一个数据一致的副本.正常运行正常运行TaTbTf动态转储动态转储运行事务运行事务故障发生点故障发生点恢复恢复重装后备副本重装后备副本日志
9、文件日志文件重新运行事务重新运行事务转储方式转储方式海量转储:海量转储:增量转储:增量转储:每次转储全部数据库每次转储全部数据库每次只转储上一次转储后更新过的数据每次只转储上一次转储后更新过的数据11总结:总结:转储状态转储状态动态转储动态转储静态转储静态转储转转储储方方式式海量转储海量转储增量转储增量转储动态海量转储动态海量转储动态增量转储动态增量转储静态海量转储静态海量转储静态增量转储静态增量转储127.4.2登记日志文件登记日志文件日志文件日志文件用来记录事务对数据库的更新操作的文件用来记录事务对数据库的更新操作的文件.日志文件中需要登记的内容日志文件中需要登记的内容:(1)各事务的开始
10、标记各事务的开始标记;(2)各事务的结束标记各事务的结束标记;(3)各事务的所有更新操作各事务的所有更新操作操作类型操作类型操作对象操作对象更新前数据的旧值更新前数据的旧值更新后数据的新值更新后数据的新值日志文件的作用日志文件的作用:(1)事务故障恢复和系统故障恢复必须用日志文件。事务故障恢复和系统故障恢复必须用日志文件。(2)动态转储的后备副本进行介质故障恢复,必须用日志文件。动态转储的后备副本进行介质故障恢复,必须用日志文件。(3)静态转储的后备副本进行介质故障恢复,也可用日志文件。静态转储的后备副本进行介质故障恢复,也可用日志文件。13正常运行正常运行TaTbTf静态转储静态转储运行事务
11、运行事务故障发生点故障发生点恢复恢复重装后备副本重装后备副本重新运行事务重新运行事务正常运行正常运行TaTbTf静态转储静态转储运行事务运行事务故障发生点故障发生点恢复恢复重装后备副本重装后备副本利用日志文件恢复事务利用日志文件恢复事务登记日志文件登记日志文件登记日志文件登记日志文件14登记日志文件时必须遵循的两条原则登记日志文件时必须遵循的两条原则:(1)登记的次序严格按并发事务执行的时间次序登记的次序严格按并发事务执行的时间次序;(2)必须先写日志文件必须先写日志文件,后写数据库后写数据库;写日志文件操作:把表示这个修改的日志记录写到日志文件写日志文件操作:把表示这个修改的日志记录写到日志
12、文件写数据库操作:写数据库操作:把对数据的修改写到数据库中把对数据的修改写到数据库中157.5 恢复策略恢复策略1.事务内部故障的恢复事务内部故障的恢复恢复的方法恢复的方法:利用日志文件撤销利用日志文件撤销(undo)此事务对数据库此事务对数据库 进行的修改进行的修改.恢复的步骤恢复的步骤:(1)反向扫描日志文件反向扫描日志文件,查找该事务的更新操作查找该事务的更新操作.(2)对该事务的更新操作执行逆操作对该事务的更新操作执行逆操作.(3)继续反向扫描日志文件继续反向扫描日志文件,查找该事务的其他更新操作查找该事务的其他更新操作(4)如此处理下去如此处理下去,直至读到此事务的开始标志直至读到此
13、事务的开始标志.162.系统故障的恢复系统故障的恢复恢复的方法恢复的方法:利用日志文件撤销利用日志文件撤销(undo)尚未完成的事务尚未完成的事务;利用日志文件重做利用日志文件重做(redo)已提交的事务已提交的事务;恢复的步骤恢复的步骤:(1)正向扫描日志文件正向扫描日志文件,找出在故障发生前已经提交的找出在故障发生前已经提交的 事务事务,将其事务标识记入重做队列将其事务标识记入重做队列;找出在故障发生找出在故障发生 时尚未完成的事务时尚未完成的事务,将其事务标识记入撤销队列将其事务标识记入撤销队列;(2)对撤销队列中的各个事务进行撤销对撤销队列中的各个事务进行撤销(undo)处理处理;(3)对重做队列中的各个事务进行重做对重做队列中的各个事务进行重做(redo)处理处理;173.介质故障的恢复介质故障的恢复恢复的方法恢复的方法:利用数据库后备副本和日志文件恢复数据库利用数据库后备副本和日志文件恢复数据库.恢复的步骤恢复的步骤:(1)装入最新的数据库后备副本装入最新的数据库后备副本,使数据库恢复到最近一使数据库恢复到最近一 次转储时的一致性状态次转储时的一致性状态.(2)装入相应的日志文件副本装入相应的日志文件副本,重做已完成的事务重做已完成的事务.18
限制150内