数据库概论与技术数据恢复技术.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ARIES算法:数据结构 Data 这是描述欲更新的redo和/或undo数据。CLR只包含redo信息,因为它们不能undo UndoNxtLSN 只在CLR中出现,它指的是回滚阶段要处理的下一个本事务的日志记录,也即UndoNxtLSN是当前日志正在弥补的日志记录的PrevLSN的数值。如果已经没有日志记录需要undo,该数据域就会是0 页面结构 数据库的每个页都有page_LSN域。它包含描述对该页面所做的最近更新日志记录的LSN。在恢复的Redo阶段,LSN值小于等于page_LSN值的记录将不在这页上redo ARIES算法:数据结构 事务表 事务表记录事务的状态 TransID:事务的ID State:事务的提交状态 LastLSN:事务所写的最后一条LSN UndoNxtLSN:在回滚阶段下一个记录的LSN。如果本事务的最近日志记录是一个可undo的非CLR记录,这个字段的值就会被设为LastLSN。如果最近日志记录是CLR,此字段的值就设为此CLR的UndoNxtLSN的值 ARIES算法:数据结构 脏页表 包含一个在数据库缓冲区中已更新的列表, PageID+pageLSN+ RecLSN RecLSN用于标识日志记录,这些日志记录的磁盘页版本没有实施更新 当一页被插入到脏页表时(当他首次在缓冲池中被修改时),RecLSN的值被设置成日志的当前末尾 只要页被写入磁盘,该页就被从脏页表中移除。 检查点日志记录 包含检查点发生时脏页和活动事务的列表,同时记录每个事务的LastLSN ARIES算法:三个原理 先写日志 在将更新的数据库对象的修改写入磁盘之前,先将对应的日志记录写入稳存 恢复修改的记录数据 在回滚某些事务时,如果出现对数据库的改变,则需要在日志中记录这些改变,保证在重复进行重新启动时不需要重复这些操作 重做时重复历史 在崩溃后进行重新启动时,重做崩溃前的所有操作,使系统恢复到崩溃时的状态,然后回滚崩溃时还在执行的事务已完成的操作 ARIES算法:三个过程 分析过程 决定哪些事务要undo,哪些页在崩溃时是脏的,以及redo应从哪个LSN开始 Redo过程 从分析过程决定的位置开始,执行一个redo,重复历史,将数据库恢复到发生崩溃前的状态 Undo过程 回滚在发生崩溃时那些不完整的事务 ARIES算法:系统故障恢复 分析 重做 撤销 崩溃时活动事务最早的日志记录 分析结束时脏页中最小的recLSN 最近的检查点(包括了脏页和活动事务的列表,并记录了事务的LastLSN) 崩溃 日志 ARIES算法中恢复的三个阶段 ARIES算法:分析过程 找到最后完整检查点日志记录,并从该记录开始读入脏页表 将RedoLSN设置为脏页表中页的RecLSN的最小值,如果没有脏页,就将其设置为检查点日志记录的LSN 将要被undo的事务列表undo-list设置为检查点日志记录中的事务列表及这些事务的LastLSN 从检查点继续向前扫描,每找到一个不在undo-list中的事务日志记录,就将其添加到undo-list,每找到一个事务的end日志记录,就将其从undo-list中删除 ARIES算法:Redo过程 Redo过程通过重演所有没有在磁盘页上反映的动作来重复历史 Redo过程从RedoLSN开始向前扫描日志,该点之前的日志记录已经反映在磁盘数据库页上 只要Redo过程找到一个update日志记录,它就执行如下动作: 如果该页不在脏页表中(更新已经实施),或者该update日志记录的LSN小于脏页表中该页的RecLSN(没有实施,但之后还有更新),Redo过程就跳过该日志记录 否则Redo过程就从磁盘调出该页,如果其PageLSN小于该日志记录的LSN,重做该日志记录 ARIES算法:Undo过程 Undo过程反向扫描日志,取消所有undo-list中的事务 如果找到一个CLR,它用UndoNextLSN字段跳过一个已经回滚了的事务日志。否则,它用事务日志的PrevLSN字段查找下一个要被撤消的事务日志 每当一个update日志记录被用于撤消,Undo过程产生一个包含undo执行动作(必须是物理逻辑的)的CLR,并将CLR的UndoNextLSN设置为update日志记录的PreLSN值 SQL SERVER恢复技术 SQL Server:最小恢复LSN MinLSN是下面这些LSN中的最小LSN: 检查点起点的 LSN 最旧的活动事务起点的 LSN LSN 141 LSN 142 LSN 143 LSN 144 LSN 145 LSN 146 LSN 147 LSN 148 开始 Tran1 开始 Tran2 更新 Tran2 检查点 更新 Tran1 提交 Tran1 检查点 更新

文档评论(0)

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

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

1亿VIP精品文档

相关文档