已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第七章数据库恢复技术,计算机系统中硬件的故障、软件的错误、操作员的失误以及恶意的破坏仍是不可避免的,这些故障轻则造成运行事务非正常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中全部或部分数据丢失。数据库管理系统必须具有把数据库从错误状态恢复到某一已知的正确状态(亦称为一致状态或完整状态)的功能,这就是数据库的恢复。,第七章数据库恢复技术,事务的基本概念故障的种类恢复的实现技术恢复策略具有检测点的恢复技术数据库镜像,7.1事务的基本概念,事务:是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位事务和程序是两个概念一个程序中包含多个事务事务的定义:显示定义,隐含定义(由DBMS按缺省规定自动划分事务)在SQL中,定义事务BEGINTRANSACTION开始COMMIT提交:将事务中所有对数据库的更新写回到磁盘的物理数据库中去,事务正常结束。ROLLBACK回滚:在事务运行的过程中发生了某种故障,事务不能继续执行,系统将事务中对数据库的所有已完成的操作全部撤销,回滚到事务开始时的状态。,7.1事务的基本概念,事务的性质ACID原子性Atomicity事务中包括的操作要么都做,要么都不做一致性Consistency事务执行的结果从一个一致性状态变到另一个一致性状态。当数据库只包含成功事务提交的结果时,就说数据库处于一致性状态。例如银行两个账户A和B:A-200B+200隔离性Isolation一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能相互干扰。持久性Durability一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。当系统或介质发生故障时,确保已提交事务的更新不能丢失。事务是恢复和并发控制的基本单位,7.2故障的种类,数据库系统中可能发生各种各样的故障,大致可以分以下几类:一、事务内部的故障二、系统故障三、介质故障四、计算机病毒,7.2故障的种类,7.2.1事务内部的故障事务内部的故障:可预期的和不可预期的可预期的故障:例如银行转账事务,由事务本身处理,不需要恢复系统处理,由事务本身处理,恢复系统处理,7.2故障的种类,begintransaction读账户甲的余额Balance;Balance=Balance-Amountif(Balance0)then打印金额不足,不能转账;rollback;else读账户乙余额Balance1;Balance1=Balance1+Amount;写回Balance1;commit;,事务本身可以发现并处理,7.2故障种类,不可预期的故障:运算溢出,并发事务由于死锁而强制撤销事务,违反了某些完整性限制等,事务没有达到预期的终点(到达commit或rollback)可以预料的故障使事务能到达预期的终点,而不可预料的故障使事务不能到达预期的终点事务具有原子性,对不能到达预期终点的事务要进行处理-恢复undo操作:恢复程序强行取消该事务已经做出的对数据库的修改,使该事务好像根本没有启动过,强行回滚(rollback)该事务,7.2故障种类,系统故障:指造成系统停止运行的任何事件CPU,O.S.,DBMS,停电影响正在运行的所有事务,数据库本身并没遭到破坏,只是数据不正确-恢复,数据缓冲区,数据库,已经提交的数据丢失,数据尚未写入硬盘,7.2故障种类,故障发生时一些尚未完成的事务的结果可能已被送入物理数据库,从而造成数据库可能处于不正确的状态。为保证数据一致性,需要清除这些事务对数据库的所有修改。有些已完成的事务可能有一部分甚至全部留在缓冲区,尚未写回到磁盘上的物理数据库中,系统故障使得这些事务对数据库的修改部分或全部丢失,这也会使数据库处于不一致状态,因此应将这些事务已提交的结果重新写入数据库。,7.2故障种类,介质故障:指外存故障(磁盘损坏、磁头碰撞、瞬时磁场干扰等)故障产生的影响破坏数据库或部分数据库影响正在存取这部分数据的所有事务。这类故障比前两类故障发生的可能性小得多,但破坏性最大。,7.3恢复的实现技术,恢复机制涉及的两个关键问题是:第一,如何建立冗余数据;第二,如何利用这些冗余数据实施数据库恢复。建立冗余数据最常用的技术数据转储登记日志文件数据转储DBA定期的将整个数据库复制到磁带或另一个磁盘上保存起来的过程备用的数据称为后备副本或后援副本转储十分耗费时间和资源,不能频繁进行。DBA应根据数据库的使用情况确定一个适当的转储周期,7.3恢复的实现技术,静态转储:在系统无运行事务时进行的转储操作,转储过程中禁止操作数据库后援副本和数据库中的数据是一致的,静态转储降低数据库的可用性动态转储:指转储期间允许对数据库进行存取和修改,7.3恢复的实现技术,转储得到的后援副本和数据库中的数据不一定一致,但可以提高系统的可用性,A=20,后援副本,数据库,在t1时刻A=20被写到后援副本在t2时刻A被修改为100,A=100被写到数据库,而后援副本的值不变,A=100,后援副本,数据库,A=20,必须记录转储期间,各事务对数据库的修改活动,建立日志文件,7.3恢复的实现技术,海量转储:每次转储全部数据库。增量转储:每次只转储上一次转储后更新过的数据。数据的转储方法:,7.3恢复的实现技术,登记日志文件日志文件:记录事务对数据库更新操作的文件。不同数据库系统采用的日志文件格式并不完全一样。日志文件主要有两种格式以记录为单位的日志文件以数据块为单位的日志文件,7.3恢复的实现技术,每个日志记录的内容主要包括:事务标识操作类型操作对象更新前数据的旧值更新后数据的新值,7.3恢复的实现技术,日志文件的作用(1)事务故障恢复和系统故障恢复必须用日志文件。(2)在动态转储方式中必须建立日志文件。(3)在静态转储方式中,也可以建立日志文件。,7.3恢复的实现技术,静态转储有日志恢复示意图:,t1,t2,t3,正常运行:,静态转储,运行事务,故障发生点,登记日志文件,t1,t2,t3,介质故障恢复,重装后援副本,按日志恢复,故障发生点数据库状态,继续运行,登记日志文件,日志文件,数据示意,恢复后数据示意,故障发生点前数据库一致状态,按日志恢复的好处?,不必运行事务程序,7.3恢复的实现技术,登记日志文件登记的次序严格按事务实际执行的顺序必须先写日志文件,后写数据库,日志文件,数据库A=30,修改的数据,关于此修改的日志记录,数据修改,7.4恢复策略,事务故障恢复:事务未结束,由系统自动恢复,采用undo操作,系统恢复步骤:反向扫描日志文件,查找该事务的更新操作对该事务的更新操作执行逆操作继续反向扫描日志文件,查找该事务的其他更新操作,并做同样的处理直至读到该事务的开始标志,该事务恢复完成系统故障恢复:系统重新启动时,由系统自动恢复,对未结束的事务采用undo操作,对已结束的事务采用redo操作,系统恢复步骤:,7.4恢复策略,正向扫描日志文件,找出在故障发生前已提交的事务,将其事务标识记入重做(redo)队列,找出未提交的事务,将其事务标识记入撤销(undo)队列对撤销队列中的事务进行撤销(undo)处理对重做队列中的事务进行重做(redo)处理介质故障恢复:需要DBA介入,实际恢复由系统完成,具体步骤:装入后援副本装入相应的日志文件副本启动恢复程序按日志恢复,!日志文件也要转储!日志和数据库不在同一磁盘,7.5具有检测点的恢复,在系统故障和介质故障中,要扫描日志文件,确定哪些事务已提交,哪些事务未提交,如果日志文件很长,存在两个问题扫描日志花费时间长许多需要redo的事务所涉及的数据已写到数据库中具有检测点的恢复技术:在日志文件中增加检测点记录,增加一个重新开始文件,动态维护日志文件检测点记录的内容包括:建立检测点时刻所有正在执行的事务清单这些事务最近一个日志记录的地址,7.5具有检测点的恢复,动态维护日志文件的方法是周期性地执行如下操作:建立检测点,保存数据库状态,具体步骤为:将当前日志缓冲中的日志记录写入日志文件在日志文件中写入一个检测点记录将当前数据缓冲中的所有数据写入数据库将检测点记录的地址写入重新开始文件,T1D1T2D2,Ci检测点记录地址,检测点Ci的重新开始记录,重新开始文件,日志文件,7.5具有检测点的恢复,使用检测点进行恢复使用检测点进行恢复的步骤:在重新开始文件中找到最后一个记录,从而找到最后一个检测点记录找到正在执行的事务清单,将其放入UNDO队列,Tc(检测点),Tf(系统故障),T1,T2,T3,T4,T5,Redo:T2,T4Undo:T3,T5,7.5具有检测点的恢复,REDO队列暂为空。从检查点开始正向扫描日志文件。如有新开始的事物Ti,把Ti暂时放入UNDO队列;如有提交的事物Tj,把Tj从UNDO队列移到REDO队列;直到日志文件结束。对UNDO-LIST中的每个事物执行UNDO操作,对REDO-LIST中的每个事物执行REDO操作。,7.6数据库镜像,磁盘容量越来越大,价格越来越便宜。数据库镜像为避免磁盘介质出现故障影响数据库的可用性。数据库镜像,即根据DBA的要求,自动把整个数据库或其中的关键数据复制到另一个磁盘上。当主数据库更新时,DBMS自动把更新后的数据复制过去,即DBMS自动保证镜像数据与主数据库的一致性。(如图a)一旦出现
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国家级检验检测机构资质认定评审员考试试题及答案(南宁2026年)
- 2026年心理咨询考试考题及答案
- 2026年浙江工业设计职业资格考试(工业设计师工业设计综合知识)模具类经典试题及答案
- 2026年心理咨询师考试基础理论综合试题与答案
- 2025年科技园区智慧零售系统建设实践
- 第7课 我是班级值日生 第一课时 课件(内嵌视频)2026-2027学年道德与法治二年级上册统编版
- 2026年湖北省襄阳市专业技术职称水平能力测试(水产工程)复习题及答案
- 2026年湖北省神农架林区农业专业技术职务水平能力测试(农学)经典试题及答案
- 2026年湖北省鄂州市农业专业技术职务水平能力测试(农学)全真模拟试题及答案
- 2026年度湖北省建筑工程专业技术职务水平能力测试(岩土工程)综合练习题及答案
- 《金融机构消费者权益保护监管评价办法》测试考试练习题库(附答案)
- 2025年理论摩托车考试题及答案
- 年产30万吨高塔复合肥及年产20万吨掺混肥项目可行性研究报告模板-立项备案
- GB/T 18213-2025低频电缆和电线无镀层和有镀层铜导体直流电阻计算导则
- 雨课堂在线学堂《大学生国家安全教育》作业单元考核答案
- 2025年初中二年级生物期末模拟卷(含答案)
- 牙周病预防宣教
- 实施指南(2025)《AQ 2059-2016磷石膏库安全技术规程》
- 防护目镜使用课件
- 海上钢琴师影片解析
- 老年人健康管理档案模板
评论
0/150
提交评论