基于日志事务数据库恢复技术.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于日志的数据库恢复 数据库系统中的非灾难性故障所导致的数据不一致问题,常用的解决方法是基于日志的恢复技术。查阅资料,研究探讨此类恢复技术的基本方法及其实现算法。 事务日志及在数据库恢复中的作用 一、事务日志的工作原理   实际上,事务中的数据操作首先在数据库缓冲区中进行,缓冲区中有用来记录操作活动的数据页和日志页。当事务运行到Commit Transaction时,日志页从缓冲区写入磁盘,而后数据页再从缓冲区写入磁盘,即遵循“先写日志”的原则。如果先写了日志而没有来得及修改实际数据,则在下一次的正常启动或恢复过程中,DBMS检查日志里的记录,将数据的更新补录到数据库中。因此遵循“先写日志”的原则,可以严格地保持事务日志和实际数据更新的一致性。事务的所有日志记录都链接在一起,当系统出现故障时,通过恢复(前滚)或撤消(回滚)事务能够最大限度地恢复数据库。 二、基于事务日志的数据库恢复思路 假如某数据库系统在T1时刻做了一次完整的备份,由于某种原因在T2时刻(T2T1)出现了故障,丢失了重要的数据。一般的数据恢复思路是利用T1时刻的数据备份将数据库恢复到T1时刻的状态,T1至T2时间段更新的数据则丢失,即做到不完全恢复。 实际上如果充分利用T1至T2 时间段的事务日志,我们完全可以将数据库恢复到T2时刻的状态,即完全的数据库恢复。因为T1至T2时间段的事务日志是按照时间顺序详细记录了这一时间段的事务处理信息,如图所示。 如果我们在T1状态的基础上,重新依次运行这些事务,就可以将数据库由T1状态逐步推演到T2时刻的状态,实现数据库的完整恢复。此外,还可以根据需要在T1与T2之间某个时间点停留,即把数据库恢复到过去某个特定的时间点。 基于事务日志的数据库恢复技术 一、利用事务日志进行数据库恢复的操作步骤   当数据库出现故障时,恢复到当前故障点应按下面的次序进行操作: ①备份当前活动事务日志; ②还原星期一晚上 22:00 创建的数据库完全备份; ③依次还原自星期一晚上 22:00 后创建的差异数据库备份,直至星期二 9:00 的差异备份为止; ④依次应用星期二 9:10 、9:20 创建的事务日志备份 ⑤应用步骤①创建的当前活动事务日志作最后还原。 ARIES 数据库恢复算法的分析 一、ARIES 简介   ARIES(Algorithm for Recovery and Isolation Exploiting Semantics) ,该算法出现于IBM的 Almaden 研究中心在1992年完成的一项名为 Starburst 的大型数据库原型系统研究项目中,该算法基于后备复本和日志。 它试图以概念上相对简单且系统化的方式,提供一套能确保事务原子性和持久性的、具有良好性能的的恢复管理算法。它能与绝大多数并发控制机制很好的协调工作。ARIES 数据结构由日志记录、页结构、事务表与脏页表四部分组成。 ARIES恢复管理算法综述 当系统崩溃后重启时,恢复管理器将被激活,并按以下三个阶段进行处理: 分析(Analysis):鉴别崩溃发生时,缓冲区中的脏页和当时仍活跃的事务。 重做(Redo):重做从日志的适当起点(比如,被修改的最早脏页对应日志记录)开始的所有动作,恢复系统到崩溃时的DB状态。 撤消(Undo):撤消上次崩溃时所有未提交事务的动作效果,使DB只反映已提交事务的影响。 一个简单的ARIES日志片段示例 分析阶段将能分析识别出: 崩溃时仍活跃事务:T1,T3; 已提交事务T2 崩溃时的脏页P1、P3和P5。 在重做阶段,提交事务T2的所有动作,必须按日志顺序重新应用一次。 最后,在撤销阶段,T1和T3的所有动作,必须按日志记录的相反顺序,依次逐个撤销。 AREIS数据结构 ARIES数据结构由日志记录、页结构、事务表与脏页表四部分组成。 1、日志记录 日志既可为己提交事务的重做(redo)和未提交事务的撤消(undo)提供信息源,也为介质恢复提供途径。ARIES要对任何事务的可能引起可恢复数据对象发生改变的操作作日志,并采用先记后写的WAL协议,日志记录之数据结构包括以下数据域: 日志顺序码(log sequence number):以下简称LSN 日志类型( Type):通常有四种,即常规更新记录(Update)、补偿日志记录(compensation log record 简称CLR)、与提交协议有关的记录(如二步提交协议中的准备提交)或非事务相关记录(如OS文件的返回)。 事务标识符(Transaction ID):标识引发所记录操作的事务。 前日志顺序码(Previous LSN):表示由同一事务写入的前一个日志记录的日志顺序码。 页标识符(Page ID):用于标识“更新”与“补偿”记录中的更新所作用的页

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档