- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库的恢复 为什么要数据库恢复 故障是不可避免的 计算机硬件故障 系统软件和应用软件的错误 操作员的失误 恶意的破坏 故障的影响 轻则造成运行事务非正常中断,影响数据库中数据的正确性 重则破坏数据库,使数据库中数据部分或全部丢失。例,银行转帐。 恢复的原理 事务故障 某个事务在运行过程中由于种种原因未运行至正常终止点就夭折了 系统故障 由于某种原因造成整个系统的正常运行突然停止,致使所有正在运行的事务都以非正常方式终止。 介质故障 硬件故障使存储在外存中的数据部分丢失或全部丢失 事务故障 事务故障的恢复 发生事务故障时,夭折的事务可能已把对数据库的部分修改写回磁盘。 事务故障的恢复:事务撤消(UNDO) 恢复程序要在不影响其它事务运行的情况下,强行回滚(ROLLBACK)该事务,即清除该事务对数据库的所有修改,使得这个事务象根本没有启动过一样 系统故障 系统故障的恢复 1. 清除尚未完成的事务对数据库的所有修改 如果DBMS无法确定哪些事务已更新过数据库,则系统重新启动后,恢复程序要强行撤消(UNDO)所有未完成事务,使这些事务象没有运行过一样。 2. 将缓冲区中已完成事务提交的结果写入数据库 如果DBMS无法确定哪些事务的提交结果尚未写入物理数据库,则系统重新启动后,恢复程序需要重做(REDO)所有已提交的事务。 介质故障常见原因 硬件故障 磁盘损坏 磁头碰撞 操作系统的某种潜在错误 瞬时强磁场干扰 介质故障(续) 介质故障的恢复 装入数据库发生介质故障前某个时刻的数据副本 重做自此时始的所有成功事务,将这些事务已提交的结果重新记入数据库(REDO) 故障的种类小结 数据库系统中各类故障对数据库的影响 数据库本身被破坏(介质故障) 数据库处于不一致状态 数据库中包含了未完成事务对数据库的修改(事务故障、系统故障) 数据库中丢失了已提交事务对数据库的修改(系统故障) 不同类型的故障应采用不同的恢复操作 故障的种类小结(续) 恢复操作的基本原理:简单 任何恢复操作的原理都是一样的 原理:利用存储在系统其它地方的冗余数据来重建数据库中已经被破坏或已经不正确的那部分数据 恢复的实现技术:复杂 一般一个大型数据库产品,恢复子系统的代码要占全部代码的10%以上 恢复的实现技术 恢复技术的原理 利用存储在系统其它地方的冗余数据来修复或重建数据库中被破坏的或不正确的数据。 利用存储在后备副本、日志文件和数据库镜像中的冗余数据来重建数据库 恢复机制涉及的关键问题 1. 如何建立冗余数据 数据转储 登记日志文件 2. 如何利用这些冗余数据实施数据库恢复 恢复的实现技术 数据转储 转储是指DBA将整个数据库复制到磁带或另一个磁盘上保存起来的过程 登记日志文件 恢复策略 冗余数据--转储的用途 用途:供介质故障恢复时使用 一旦系统发生介质故障,数据库遭到破坏,可以将后备副本重新装入,把数据库恢复起来。 恢复的程度 重装后备副本只能将DB恢复到转储时的状态 要想恢复到故障发生时的状态,必须重新运行自转储以后的所有更新事务 冗余数据--转储方法 1.静态转储与动态转储 静态转储是在系统中无运行事务时进行的转储操作 动态转储是指转储操作与用户事务并发进行,转储期间允许对数据库进行存取或修改 2.海量转储与增量转储 3.转储方法小结 利用静态转储副本进行恢复 利用动态转储副本进行恢复 2.海量转储与增量转储 海量转储 每次转储全部数据库 增量转储 只转储上次转储后更新过的数据 海量转储与增量转储比较 从恢复角度看,使用海量转储得到的后备副本进行恢复往往更方便 但如果数据库很大,事务处理又十分频繁,则增量转储方式更实用更有效 3.转储方法小结 转储方法分类 冗余数据--日志文件 1. 什么是日志文件 日志文件(log)是用来记录事务对数据库的更新操作的文件。 2. 日志文件的格式 以记录为单位的日志文件 以数据块为单位的日志文件 冗余数据--日志文件 3. 日志文件内容 各个事务的开始标记(BEGIN TRANSACTION) 各个事务的结束标记(COMMIT或ROLLBACK) 各个事务的所有更新操作 每个事务开始的标记、每个事务的结束标记和每个更新操作均作为日志文件中的一个日志记录(log record) 冗余数据--日志文件的用途 1.用途 进行事务故障恢复 进行系统故障恢复 协助后备副本进行介质故障恢复 登记日志文件的原则 为保证数据库是可恢复的,登记日志文件时必须遵循两条原则 登记的次序严格按并行事务执行的时间次序 必须先写日志文件,后写数据库 写数据库操作:把对数据的修改写到数据库中 写日志文件操作:把表示这个修改的日志记录写到日志文件 登记日志文件的原则(续) 为什么要先写日志文件 写数据库和写日
您可能关注的文档
最近下载
- 三角函数与解三角形大题综合(精选30题)--2026年高考数学.docx
- IEC 60068-2-11:2021(完整版清晰版).pdf VIP
- 【最新】2026一年级寒假特色作业高清版.docx
- 华北科技学院《高等数学》2018-2019学年第二学期期末试卷.doc VIP
- 公务摄影培训课件.ppt VIP
- 2026人教版小学数学二年级上册期末考试3套精选试卷(含答案解析).docx
- YZ∕T 0136-2014 快递专用电动三轮车技术要求(可复制版).pdf
- 职业技能大赛的作品汇报PPT获奖模板.pptx VIP
- 人教版小学四年级上册期末考试数学试卷(提升卷).pdf VIP
- 政治哲学导论 (英)乔纳森·沃尔夫著200908232页.pdf VIP
原创力文档


文档评论(0)