《数据库数据库恢复技术.ppt》由会员分享,可在线阅读,更多相关《数据库数据库恢复技术.ppt(79页珍藏版)》请在优知文库上搜索。
1、第十章第十章 数据库恢复技术数据库恢复技术故障是不可避免的故障是不可避免的计算机硬件故障计算机硬件故障系统软件和应用软件的错误系统软件和应用软件的错误操作员的失误操作员的失误恶意的破坏恶意的破坏故障的影响故障的影响轻则造成运行事务非正常中断,影响数据库中数据轻则造成运行事务非正常中断,影响数据库中数据的正确性的正确性重则破坏数据库,使数据库中数据部分或全部丢失。重则破坏数据库,使数据库中数据部分或全部丢失。例,银行转帐。例,银行转帐。第一页,编辑于星期一:二十点 十八分。恢复(续)恢复(续)数据库管理系统对故障的对策数据库管理系统对故障的对策DBMS提供了恢复子系统,用来保证各种故提供了恢复子
2、系统,用来保证各种故障发生后,能把数据库中的数据从错误状态障发生后,能把数据库中的数据从错误状态恢复到某种逻辑一致的状态。即保证各个事恢复到某种逻辑一致的状态。即保证各个事务中的操作要么全部完成,要么全部不做。务中的操作要么全部完成,要么全部不做。数据库系统所采用的恢复技术是否行之有效是数据库系统所采用的恢复技术是否行之有效是衡量系统性能优劣的重要指标。衡量系统性能优劣的重要指标。第二页,编辑于星期一:二十点 十八分。数据库恢复技术数据库恢复技术10.1 恢复的原理恢复的原理10.2 恢复的实现技术恢复的实现技术10.3 ORACLE的恢复技术的恢复技术10.4 数据库镜像数据库镜像第三页,编
3、辑于星期一:二十点 十八分。10 恢复恢复10.1 恢复的原理恢复的原理10.2 恢复的实现技术恢复的实现技术10.3 ORACLE的恢复技术的恢复技术10.4 数据库镜像数据库镜像第四页,编辑于星期一:二十点 十八分。10.1 恢复的原理恢复的原理事务故障事务故障系统故障系统故障介质故障介质故障第五页,编辑于星期一:二十点 十八分。一、事务故障一、事务故障什么是事务故障什么是事务故障某个事务在运行过程中由于种种原因未运行某个事务在运行过程中由于种种原因未运行至正常终止点就夭折了至正常终止点就夭折了事务故障的常见原因事务故障的常见原因输入数据有误输入数据有误运算溢出运算溢出违反了某些完整性限制
4、违反了某些完整性限制某些应用程序出错某些应用程序出错并行事务发生死锁并行事务发生死锁第六页,编辑于星期一:二十点 十八分。事务故障(续)事务故障(续)事务故障的恢复事务故障的恢复发生事务故障时,夭折的事务可能已把对数发生事务故障时,夭折的事务可能已把对数据库的部分修改写回磁盘。据库的部分修改写回磁盘。事务故障的恢复:事务故障的恢复: 事务撤消(事务撤消(UNDO)?恢复程序要在不影响其它事务运行的情况恢复程序要在不影响其它事务运行的情况下,强行回滚(下,强行回滚(ROLLBACK)该事务,)该事务,即清除该事务对数据库的所有修改,使得即清除该事务对数据库的所有修改,使得这个事务象根本没有启动过
5、一样这个事务象根本没有启动过一样第七页,编辑于星期一:二十点 十八分。二、系统故障二、系统故障什么是系统故障什么是系统故障由于某种原因造成整个系统的正常运行突然由于某种原因造成整个系统的正常运行突然停止,致使所有正在运行的事务都以非正常停止,致使所有正在运行的事务都以非正常方式终止。方式终止。发生系统故障时,内存中数据库缓冲区的信发生系统故障时,内存中数据库缓冲区的信息全部丢失,但存储在外部存储设备上的数息全部丢失,但存储在外部存储设备上的数据未受影响据未受影响第八页,编辑于星期一:二十点 十八分。系统故障(续)系统故障(续)系统故障的常见原因系统故障的常见原因操作系统或操作系统或DBMS代码
6、错误代码错误操作员操作失误操作员操作失误特定类型的硬件错误(如特定类型的硬件错误(如CPU故障)故障)突然停电突然停电第九页,编辑于星期一:二十点 十八分。系统故障(续)系统故障(续)系统故障的恢复系统故障的恢复1. 清除尚未完成的事务对数据库的所有修改清除尚未完成的事务对数据库的所有修改?如果如果DBMS无法确定哪些事务已更新过数据库,无法确定哪些事务已更新过数据库,则系统重新启动后,恢复程序要强行撤消则系统重新启动后,恢复程序要强行撤消(UNDO)所有未完成事务,使这些事务象没有)所有未完成事务,使这些事务象没有运行过一样。运行过一样。2. 将缓冲区中已完成事务提交的结果写入数据库将缓冲区
7、中已完成事务提交的结果写入数据库?如果如果DBMS无法确定哪些事务的提交结果尚未写无法确定哪些事务的提交结果尚未写入物理数据库,则系统重新启动后,恢复程序需入物理数据库,则系统重新启动后,恢复程序需要重做(要重做(REDO)所有已提交的事务。)所有已提交的事务。第十页,编辑于星期一:二十点 十八分。三、介质故障三、介质故障什么是介质故障什么是介质故障硬件故障使存储在外存中的数据部分丢失或硬件故障使存储在外存中的数据部分丢失或全部丢失全部丢失介质故障比前两类故障的可能性小得多,但介质故障比前两类故障的可能性小得多,但破坏性最大。破坏性最大。第十一页,编辑于星期一:二十点 十八分。介质故障介质故障
8、(续续)介质故障的常见原因介质故障的常见原因硬件故障硬件故障?磁盘损坏磁盘损坏?磁头碰撞磁头碰撞操作系统的某种潜在错误操作系统的某种潜在错误瞬时强磁场干扰瞬时强磁场干扰第十二页,编辑于星期一:二十点 十八分。介质故障(续)介质故障(续)介质故障的恢复介质故障的恢复装入装入数据库发生介质故障前某个时刻的数据数据库发生介质故障前某个时刻的数据副本副本重做自此时始的所有重做自此时始的所有成功事务成功事务,将这些事务,将这些事务已提交的结果重新记入数据库已提交的结果重新记入数据库第十三页,编辑于星期一:二十点 十八分。故障的种类小结故障的种类小结数据库系统中各类故障对数据库的影响数据库系统中各类故障对
9、数据库的影响数据库本身被破坏数据库本身被破坏(介质故障)(介质故障)数据库处于不一致状态数据库处于不一致状态?数据库中包含了未完成事务对数据库的修数据库中包含了未完成事务对数据库的修改(事务故障、系统故障)改(事务故障、系统故障)?数据库中丢失了已提交事务对数据库的修数据库中丢失了已提交事务对数据库的修改(系统故障)改(系统故障)不同类型的故障应采用不同的恢复操作不同类型的故障应采用不同的恢复操作第十四页,编辑于星期一:二十点 十八分。故障的种类小结(续)故障的种类小结(续)恢复操作的基本原理:简单恢复操作的基本原理:简单任何恢复操作的原理都是一样的任何恢复操作的原理都是一样的原理:原理:利用
10、利用存储在系统其它地方的存储在系统其它地方的冗余数据冗余数据来来重建重建数据库中已经被破坏或已经不正确的数据库中已经被破坏或已经不正确的那部分数据那部分数据恢复的实现技术:复杂恢复的实现技术:复杂一般一个大型数据库产品,恢复子系统的代一般一个大型数据库产品,恢复子系统的代码要占全部代码的码要占全部代码的10%以上以上第十五页,编辑于星期一:二十点 十八分。10 恢复恢复10.1 恢复的原理恢复的原理10.2 恢复的实现技术恢复的实现技术10.3 ORACLE的恢复技术的恢复技术10.4 数据库镜像数据库镜像第十六页,编辑于星期一:二十点 十八分。10.2 恢复的实现技术恢复的实现技术恢复技术的
11、原理恢复技术的原理利用存储在系统其它地方的冗余数据来修复或重建利用存储在系统其它地方的冗余数据来修复或重建数据库中被破坏的或不正确的数据。数据库中被破坏的或不正确的数据。恢复机制涉及的关键问题恢复机制涉及的关键问题1. 如何建立冗余数据如何建立冗余数据?数据转储数据转储?登记日志文件登记日志文件2. 如何利用这些冗余数据实施数据库恢复如何利用这些冗余数据实施数据库恢复第十七页,编辑于星期一:二十点 十八分。10.2 恢复的实现技术恢复的实现技术10.2.1 数据转储数据转储10.2.2 登记日志文件登记日志文件10.2.3 恢复策略恢复策略第十八页,编辑于星期一:二十点 十八分。10.2 恢复
12、的实现技术恢复的实现技术10.2.1 数据转储数据转储10.2.2 登记日志文件登记日志文件10.2.3 恢复策略恢复策略第十九页,编辑于星期一:二十点 十八分。10.2.1 数据转储数据转储一、什么是转储一、什么是转储二、转储的用途二、转储的用途三、转储方法三、转储方法第二十页,编辑于星期一:二十点 十八分。一、什么是转储一、什么是转储转储是指转储是指DBA将整个数据库复制到磁带或另一将整个数据库复制到磁带或另一个磁盘上保存起来的过程。个磁盘上保存起来的过程。这些备用的数据文本称为这些备用的数据文本称为 后备副本后备副本或或后援副本后援副本。第二十一页,编辑于星期一:二十点 十八分。二、转储
13、的用途二、转储的用途用途:供介质故障恢复时使用用途:供介质故障恢复时使用一旦系统发生介质故障,数据库遭到破坏,一旦系统发生介质故障,数据库遭到破坏,可以将后备副本重新装入,把数据库恢复起可以将后备副本重新装入,把数据库恢复起来。来。恢复的程度恢复的程度重装后备副本只能将重装后备副本只能将DB恢复到转储时的状恢复到转储时的状态态要想恢复到故障发生时的状态,必须重新运要想恢复到故障发生时的状态,必须重新运行自转储以后的所有更新事务行自转储以后的所有更新事务第二十二页,编辑于星期一:二十点 十八分。转储的用途(续)转储的用途(续)例:例:故障发生点故障发生点转储转储正常运行正常运行运行事务运行事务T
14、aTaTbTbTfTf重装后备副本重装后备副本重新运行事务重新运行事务恢复恢复第二十三页,编辑于星期一:二十点 十八分。三、转储方法三、转储方法1静态转储与动态转储静态转储与动态转储2海量转储与增量转储海量转储与增量转储3转储方法小结转储方法小结第二十四页,编辑于星期一:二十点 十八分。1静态转储与动态转储静态转储与动态转储静态转储静态转储静态转储是在系统中无运行事务时进行的转静态转储是在系统中无运行事务时进行的转储操作储操作?转储操作开始的时刻,数据库处于一致性转储操作开始的时刻,数据库处于一致性状态状态?转储期间不允许(或不存在)对数据库的转储期间不允许(或不存在)对数据库的任何存取、修改
15、活动任何存取、修改活动静态转储得到的一定是一个数据一致性的副静态转储得到的一定是一个数据一致性的副本本第二十五页,编辑于星期一:二十点 十八分。静态转储与动态转储(续)静态转储与动态转储(续)静态转储的优点静态转储的优点?实现简单实现简单静态转储的缺点静态转储的缺点?降低了数据库的可用性降低了数据库的可用性转储必须等待用户事务结束才能进行转储必须等待用户事务结束才能进行新的事务必须等待转储结束才能执行新的事务必须等待转储结束才能执行第二十六页,编辑于星期一:二十点 十八分。静态转储与动态转储(续)静态转储与动态转储(续)利用静态转储得到的副本进行故障恢复利用静态转储得到的副本进行故障恢复?只需
16、要把静态转储得到的后备副本装入,只需要把静态转储得到的后备副本装入,就能把数据库恢复到转储时刻的正确状态就能把数据库恢复到转储时刻的正确状态第二十七页,编辑于星期一:二十点 十八分。利用静态转储副本进行恢复利用静态转储副本进行恢复故障发生点故障发生点静态转储静态转储正常运行正常运行运行事务运行事务TaTaTbTbTfTf重装后备副本重装后备副本恢复恢复第二十八页,编辑于星期一:二十点 十八分。静态转储与动态转储(续)静态转储与动态转储(续)动态转储动态转储动态转储是指转储操作与用户事务并发进行,动态转储是指转储操作与用户事务并发进行,转储期间允许对数据库进行存取或修改。转储期间允许对数据库进行存取或修改。动态转储的优点动态转储的优点?不用等待正在运行的用户事务结束不用等待正在运行的用户事务结束?不会影响新事务的运行不会影响新事务的运行动态转储的缺点动态转储的缺点?不能保证副本中的数据正确有效不能保证副本中的数据正确有效第二十九页,编辑于星期一:二十点 十八分。静态转储与动态转储(续)静态转储与动态转储(续)利用动态转储得到的副本进行故障恢复利用动态转储得到的副本进行故障恢复?需要把动态