第七章:数据库恢复技术_第1页
第七章:数据库恢复技术_第2页
第七章:数据库恢复技术_第3页
第七章:数据库恢复技术_第4页
第七章:数据库恢复技术_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

第七章

数据库恢复技术一、数据库恢复故障是不可避免的计算机硬件故障系统软件和应用软件的错误操作员的失误恶意的破坏2023/1/14福州大学阳光学院计算机工程系2一、数据库恢复数据库恢复是指当数据库发生故障时,将数据库恢复到正确一致状态的过程恢复技术是衡量系统优劣的重要指标2023/1/14福州大学阳光学院计算机工程系3二、故障的种类2023/1/14福州大学阳光学院计算机工程系4事务内部故障系统故障故障的种类介质故障计算机病毒二、故障的种类事务故障:事务运行时非正常终止不可预测故障:程序非正常停止。如溢出、死锁等。可预测故障:程序中的回滚语句Rollback2023/1/14福州大学阳光学院计算机工程系5二、故障的种类发生事务故障时,夭折的事务可能已把对数据库的部分修改写回磁盘恢复策略:DBMS的DB恢复程序或用户程序(事务撤销UNDO)强行回滚(Rollback)2023/1/14福州大学阳光学院计算机工程系6二、故障的种类系统故障(软故障)造成系统停止运转的任何事件,使系统重新启动。如CPU故障、OS故障、DBMS崩溃、系统断电等后果:内存数据全部丢失,外存数据未破坏(不破坏数据库)2023/1/14福州大学阳光学院计算机工程系7二、故障的种类2023/1/14福州大学阳光学院计算机工程系8有多少事情可以从来呢?什么可以恢复,什么不可以恢复?二、故障的种类恢复策略:清除尚未完成的事务对数据库的所有修改系统重新启动时,恢复程序要强行撤消(UNDO)所有未完成事务2023/1/14福州大学阳光学院计算机工程系9二、故障的种类恢复策略:将缓冲区中已完成事务提交的结果写入数据库系统重新启动时,恢复程序需要重做(REDO)所有已提交的事务2023/1/14福州大学阳光学院计算机工程系10二、故障的种类介质故障(硬故障)外存故障。如磁盘损坏、瞬时强磁场干扰等后果:硬件破坏,外存数据丢失(部分或全部);发生的可能性小,破坏性最大(破坏数据库)恢复策略:DBA重装副本,重新启动日志文件2023/1/14福州大学阳光学院计算机工程系11二、故障的种类计算机病毒人为的故障或破坏,是一些恶作剧者研制的计算机程序,能像生物病毒一样繁殖和传播,造成对计算机系统的危害2023/1/14福州大学阳光学院计算机工程系12二、故障的种类恢复策略采用病毒疫苗杀毒采用恢复技术(后续将要学习)将其恢复2023/1/14福州大学阳光学院计算机工程系13三、恢复的实现技术恢复操作的基本原理:冗余利用存储在系统其它地方的冗余数据来重建数据库中已被破坏或不正确的那部分数据2023/1/14福州大学阳光学院计算机工程系14三、恢复的实现技术恢复的实现技术:复杂一个大型数据库产品,恢复子系统的代码要占全部代码的10%以上原理简单,实现复杂2023/1/14福州大学阳光学院计算机工程系15三、恢复的实现技术恢复机制涉及的关键问题(1)如何建立备份数据(2)如何利用备份数据实施数据库恢复2023/1/14福州大学阳光学院计算机工程系16三、恢复的实现技术2023/1/14福州大学阳光学院计算机工程系17数据转储登记日志文件建立备份数据常用的技术三、恢复的实现技术数据转储——数据库恢复的基本技术转储DBA定期的将整个数据库复制到磁带或另一个磁盘上保存起来的过程这些备用数据文本称为后备或后援副本(backup)2023/1/14福州大学阳光学院计算机工程系18三、恢复的实现技术转储和恢复2023/1/14福州大学阳光学院计算机工程系19正常运行恢复TaTb转储运行事务重装后备副本重新运行事务Tf三、恢复的实现技术转储的种类2023/1/14福州大学阳光学院计算机工程系20转储方式转储状态动态转储静态转储海量转储动态海量转储静态海量转储动态增量转储静态增量转储增量转储三、恢复的实现技术应定期进行数据转储,制作后备副本。但转储又是十分耗费时间和资源的,不能频繁进行。DBA应该根据数据库使用情况确定适当的转储周期和转储方法。2023/1/14福州大学阳光学院计算机工程系21三、恢复的实现技术例:每天晚上进行动态增量转储每周进行一次动态海量转储每月进行一次静态海量转储2023/1/14福州大学阳光学院计算机工程系22三、恢复的实现技术登记日志文件日志文件的格式和内容内容:是用来记录事务对数据库的更新操作的文件格式:以记录为单位;以数据块为单位2023/1/14福州大学阳光学院计算机工程系23三、恢复的实现技术登记日志文件日志文件的格式和内容内容:是用来记录事务对数据库的更新操作的文件格式:以记录为单位;以数据块为单位2023/1/14福州大学阳光学院计算机工程系24三、恢复的实现技术日志文件内容事务开始标记事务标识符操作的记录标识符2023/1/14福州大学阳光学院计算机工程系25三、恢复的实现技术日志文件内容在记录上实现的操作数据被修改前的值记录被更改后的值2023/1/14福州大学阳光学院计算机工程系26三、恢复的实现技术日志文件的作用用来进行事务故障恢复和系统故障恢复,并协助后备副本进行介质故障恢复2023/1/14福州大学阳光学院计算机工程系27三、恢复的实现技术登记日志文件的原则登记的次序严格按并发事务执行的时间次序必须先写日志文件,后写数据库2023/1/14福州大学阳光学院计算机工程系28二、故障的种类2023/1/14福州大学阳光学院计算机工程系29为什么要先写日志文件?三、恢复的实现技术在这两个操作之间可能发生故障如果先写了数据库修改,而在日志文件中没有登记下这个修改,则以后就无法恢复这个修改了如果先写日志,但没有修改数据库,按日志文件恢复时只不过是多执行一次不必要的UNDO操作,并不会影响数据库的正确性2023/1/14福州大学阳光学院计算机工程系30四、恢复策略事务故障的恢复恢复方法由恢复子系统应利用日志文件撤消(UNDO)此事务已对数据库进行的修改事务故障的恢复由系统自动完成,不需要用户干预2023/1/14福州大学阳光学院计算机工程系31四、恢复策略事务故障的恢复(1)反向扫描日志文件,查找该事务的更新操作;(2)对该事务的更新操作执行逆操作(undo),即将日志记录中“更新前的值”(BeforImage,BI)写入数据库。2023/1/14福州大学阳光学院计算机工程系32四、恢复策略事务故障的恢复插入操作--更新前的值为空,则相当于做删除操作删除操作--更新后的值为空,则相当于做插入操作若是修改操作,则用BI代替AI(AfterImage)2023/1/14福州大学阳光学院计算机工程系33四、恢复策略事务故障的恢复(3)继续反向扫描日志文件,查找该事务的其他更新操作,并做同样处理。(4)如此处理下去,直至读到此事务的开始标记,事务故障恢复就完成了。2023/1/14福州大学阳光学院计算机工程系34四、恢复策略系统故障的恢复(1)正向扫描日志文件,找出故障发生前已经提交的事务,将其事务标记入重做(redo)序列;同时找出故障发生时尚未完成的事务,将其标记入撤销(Undo)队列。2023/1/14福州大学阳光学院计算机工程系35四、恢复策略系统故障的恢复(2)对撤销队列中的事务进行撤销处理;(3)对重做队列中的事务做重做处理。2023/1/14福州大学阳光学院计算机工程系36四、恢复策略系统故障的恢复Redo队列:在故障发生前已经提交的事务T1,T3,T8…..Undo队列:故障发生时尚未完成的事务T2,T4,T5,T6,T7,T9…...2023/1/14福州大学阳光学院计算机工程系37四、恢复策略介质故障的恢复(1)装入最新的数据库后备副本(2)装入相应的日志文件2023/1/14福州大学阳光学院计算机工程系38四、恢复策略介质故障的恢复1.装入最新的后备数据库副本,使数据库恢复到最近一次转储时的一致性状态。对于静态转储的数据库副本,装入后数据库即处于一致性状态2023/1/14福州大学阳光学院计算机工程系39四、恢复策略介质故障的恢复对于动态转储的数据库副本,还须同时装入转储时刻的日志文件副本,利用与恢复系统故障相同的方法(即REDO+UNDO),才能将数据库恢复到一致性状态。2023/1/14福州大学阳光学院计算机工程系40四、恢复策略介质故障的恢复2.装入有关的日志文件副本,重做已完成的事务。首先扫描日志文件,找出故障发生时已提交的事务的标识,将其记入重做队列然后正向扫描日志文件,对重做队列中的所有事务进行重做处理2023/1/14福州大学阳光学院计算机工程系41四、恢复策略介质故障的恢复需要DBA介入DBA的工作重装最近转储的数据库副本和有关各日志文件副本执行系统提供的恢复命令具体的恢复操作仍由DBMS完成2023/1/14福州大学阳光学院计算机工程系42四、恢复策略2023/1/14福州大学阳光学院计算机工程系43如何改进/加快恢复过程?四、恢复策略更快的CPU,更快的内存,更快的硬盘?最占用时间:日志文件的REDOREDO记录个数多时间长能否减少记录个数?有无不必要的记录?2023/1/14福州大学阳光学院计算机工程系44四、恢复策略2023/1/14福州大学阳光学院计算机工程系45带检查点恢复数据库镜像四、恢复策略具有检查点的恢复技术问题的提出检查点技术利用检查点的恢复策略2023/1/14福州大学阳光学院计算机工程系46四、恢复策略两个问题搜索整个日志将耗费大量的时间REDO处理:重新执行,浪费了大量时间2023/1/14福州大学阳光学院计算机工程系47四、恢复策略具有检查点的恢复技术在日志文件中增加检查点记录(checkpoint)增加重新开始文件恢复子系统在登录日志文件期间动态地维护日志2023/1/14福州大学阳光学院计算机工程系48四、恢复策略检查点记录的内容建立检查点时刻所有正在执行的事务清单这些事务最近一个日志记录的地址重新开始文件的内容记录各个检查点记录在日志文件中的地址2023/1/14福州大学阳光学院计算机工程系49四、恢复策略2023/1/14福州大学阳光学院计算机工程系50四、恢复策略在检查点维护日志文件1.将当前日志缓冲区中的所有日志记录写入磁盘的日志文件上。2.在日志文件中写入一个检查点记录。2023/1/14福州大学阳光学院计算机工程系51四、恢复策略在检查点维护日志文件3.将当前数据缓冲区的所有数据记录写入磁盘的数据库中。4.把检查点记录在日志文件中的地址写入一个重新开始文件。2023/1/14福州大学阳光学院计算机工程系52四、恢复策略建立检查点时间定期按照预定的一个时间间隔不定期按照某种规则,如日志文件已写满一半建立检查点2023/1/14福州大学阳光学院计算机工程系53四、恢复策略利用检查点的恢复策略当事务T在一个检查点之前提交,T对数据库所做的修改已写入数据库,在进行恢复处理时,没有必要对事务T执行REDO操作2023/1/14福州大学阳光学院计算机工程系54四、恢复策略2023/1/14福州大学阳光学院计算机工程系55Tc(检查点)Tf(系统故障)

REDOUNDOUNDO

REDOT2T3T4T5不要REDOT1四、恢复策略利用检查点的恢复步骤1.从重新开始文件中找到最后一个检查点记录在日志文件中的地址2由该地址在日志文件中找到最后一个检查点记录2023/1/14福州大学阳光学院计算机工程系56四、恢复策略利用检查点的恢复步骤3.由该检查点记录得到检查点建立时刻所有正在执行的事务清单ACTIVE-LIST建立两个事务队列:UNDO-LIST;REDO-LIST把ACTIVE-LIST暂时放入UNDO-LIST队列,REDO队列暂为空2023/1/14福州大学阳光学院计算机工程系57四、恢复策略利用检查点的恢复步骤4.从检查点开始正向扫描日志文件,直到日志文件结束如有新开始事务Ti,把Ti暂时放入UNDO-LIST队列如有提交的事务Tj,把Tj从UNDO-LIST队列移到REDO-LIST队列2023/1/14福州大学阳光学院计算机工程系58四、恢复策略

温馨提示

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

评论

0/150

提交评论