欢迎来到天天文库
浏览记录
ID:5986307
大小:123.50 KB
页数:5页
时间:2017-12-30
《基于日志事务的数据库恢复技术》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于日志的数据库恢复数据库系统中的非灾难性故障所导致的数据不一致问题,常用的解决方法是基于日志的恢复技术。查阅资料,研究探讨此类恢复技术的基本方法及其实现算法。事务日志及在数据库恢复中的作用一、事务日志的工作原理 实际上,事务中的数据操作首先在数据库缓冲区中进行,缓冲区中有用来记录操作活动的数据页和日志页。当事务运行到CommitTransaction时,日志页从缓冲区写入磁盘,而后数据页再从缓冲区写入磁盘,即遵循“先写日志”的原则。如果先写了日志而没有来得及修改实际数据,则在下一次的正常启动或恢复过程中,DBMS检查日志里的记录,将数据的
2、更新补录到数据库中。因此遵循“先写日志”的原则,可以严格地保持事务日志和实际数据更新的一致性。事务的所有日志记录都链接在一起,当系统出现故障时,通过恢复(前滚)或撤消(回滚)事务能够最大限度地恢复数据库。二、基于事务日志的数据库恢复思路假如某数据库系统在T1时刻做了一次完整的备份,由于某种原因在T2时刻(T2>T1)出现了故障,丢失了重要的数据。一般的数据恢复思路是利用T1时刻的数据备份将数据库恢复到T1时刻的状态,T1至T2时间段更新的数据则丢失,即做到不完全恢复。实际上如果充分利用T1至T2时间段的事务日志,我们完全可以将数据库恢复到T2
3、时刻的状态,即完全的数据库恢复。因为T1至T2时间段的事务日志是按照时间顺序详细记录了这一时间段的事务处理信息,如图所示。如果我们在T1状态的基础上,重新依次运行这些事务,就可以将数据库由T1状态逐步推演到T2时刻的状态,实现数据库的完整恢复。此外,还可以根据需要在T1与T2之间某个时间点停留,即把数据库恢复到过去某个特定的时间点。基于事务日志的数据库恢复技术一、利用事务日志进行数据库恢复的操作步骤 当数据库出现故障时,恢复到当前故障点应按下面的次序进行操作:①备份当前活动事务日志;②还原星期一晚上22:00创建的数据库完全备份;③依次还原
4、自星期一晚上22:00后创建的差异数据库备份,直至星期二9:00的差异备份为止;④依次应用星期二9:10、9:20创建的事务日志备份⑤应用步骤①创建的当前活动事务日志作最后还原。ARIES数据库恢复算法的分析一、ARIES简介 ARIES(AlgorithmforRecoveryandIsolationExploitingSemantics),该算法出现于IBM的Almaden研究中心在1992年完成的一项名为Starburst的大型数据库原型系统研究项目中,该算法基于后备复本和日志。它试图以概念上相对简单且系统化的方式,提供一套能确保事务
5、原子性和持久性的、具有良好性能的的恢复管理算法。它能与绝大多数并发控制机制很好的协调工作。ARIES数据结构由日志记录、页结构、事务表与脏页表四部分组成。二、ARIES恢复管理算法综述当系统崩溃后重启时,恢复管理器将被激活,并按以下三个阶段进行处理:–分析(Analysis):鉴别崩溃发生时,缓冲区中的脏页和当时仍活跃的事务。–重做(Redo):重做从日志的适当起点(比如,被修改的最早脏页对应日志记录)开始的所有动作,恢复系统到崩溃时的DB状态。–撤消(Undo):撤消上次崩溃时所有未提交事务的动作效果,使DB只反映已提交事务的影响。三、一个
6、简单的ARIES日志片段示例分析阶段将能分析识别出:–崩溃时仍活跃事务:T1,T3;–已提交事务T2–崩溃时的脏页P1、P3和P5。在重做阶段,提交事务T2的所有动作,必须按日志顺序重新应用一次。最后,在撤销阶段,T1和T3的所有动作,必须按日志记录的相反顺序,依次逐个撤销。四、AREIS数据结构ARIES数据结构由日志记录、页结构、事务表与脏页表四部分组成。1、日志记录日志既可为己提交事务的重做(redo)和未提交事务的撤消(undo)提供信息源,也为介质恢复提供途径。ARIES要对任何事务的可能引起可恢复数据对象发生改变的操作作日志,并采
7、用先记后写的WAL协议,日志记录之数据结构包括以下数据域:(1)日志顺序码(logsequencenumber):以下简称LSN(2)日志类型(Type):通常有四种,即常规更新记录(Update)、补偿日志记录(compensationlogrecord简称CLR)、与提交协议有关的记录(如二步提交协议中的准备提交)或非事务相关记录(如OS文件的返回)。(3)事务标识符(TransactionID):标识引发所记录操作的事务。(4)前日志顺序码(PreviousLSN):表示由同一事务写入的前一个日志记录的日志顺序码。(5)页标识符(Pag
8、eID):用于标识“更新”与“补偿”记录中的更新所作用的页。通常由对象标识符与页在对象中的页序号两部分组成。(6)撤消下一个日志顺序码(UndoNextLSN):仅
此文档下载收益归作者所有