- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
17恢复系统.ppt
数据库系统概念----恢复系统 故障分类 事务故障 -逻辑故障 -系统错误 系统崩溃 磁盘故障 恢复算法 在正常事务处理时采取措施,保证有足够的信息用于故障恢复 故障发生后采取措施,将数据库内容恢复到某个保证数据库一致性、事务原子性及持久性的状态 稳定存储器的实现 理论上不可能得到稳定存储器,可以通过技术手段使数据极不可能丢失 1、RAID 2、归档备份保存至磁带 恢复与原子性 基于日志的恢复 日志是日志记录的序列,记录数据库中所有的更新活动 先写日志,后写数据库 日志的组成: -事务标识符 -数据项标识符 -旧值 -新值 基于日志的恢复 Ti start Ti, Xj, V1,V2 Ti, commit Ti, abort 基于日志的恢复 延迟的数据库修改(deferred-modification technique),事务中所有的write操作,在事务部分提交时才修改数据库的执行,日志中只记录新值 基于日志的恢复 延迟的数据库修改的恢复机制: Redo(Ti): 将事务Ti更新的所有数据项的值设为新值 Redo操作必须是幂等的 事务Ti需要Redo操作,当且仅当日志中既包含记录Ti, start又包含记录Ti, commit 基于日志的恢复 基于日志的恢复 立即的数据库修改:允许数据库修改在事务处于活动状态时就输出到数据库中 基于日志的恢复 立即的数据库修改的恢复机制: Undo(Ti):将事务Ti所有更新的所有数据项的值恢复成旧值 Redo(Ti):将事务Ti所有更新的所有数据项的值置为新值 事务Ti需要Redo操作,当且仅当日志中既包含记录Ti, start又包含记录Ti, commit 事务Ti需要Undo操作,当且仅当日志中既包含记录Ti, start不包含记录Ti, commit 基于日志的恢复 基于日志的恢复 检查点: -将当前位于主存的所有日志记录输出到稳定存储器上 -将所有修改了的缓冲块输出到磁盘上 -将一个日志记录checkpoint输出到稳定存储器 基于日志的恢复 在检查点之前提交的事务,不予考虑 确定最近的检查点发生前开始执行的最近的一个事务Ti, 对于Ti和Ti之后的开始执行的事务Tj执行redo和undo操作 影子分页 主要思想:在一个事物的生存周期中维护两张页表 1、当前页表:随着事务操作而变化 2、影子页表:在事务的执行过程中从不变化 影子分页 假设事物Tj执行一个write(X)操作,并且X位于第i页,操作如下: 1、如果第i页还不在主存,执行input(X) 2、如果这是该事物第一次向第i页执行写操作: a.找出磁盘中未使用的页 b.将a步骤中找到的页从空闲页列表中删除,将第i页的内容拷贝到a步骤找的页中 c.修改当前页表,使得第i项指向a步骤找到的页 3、将Xj的值赋给缓冲页中的x 影子分页 提交: 1、保证主存中所有被该事务修改过的缓冲页都被输出磁盘上 2、将当前页表输出到磁盘上 3、将当前页表的磁盘地址输出到记录影子页表地址的稳定存储器的固定区域 影子分页 优势:消除了日志开销,恢复速度快 缺点:提交开销、数据分片、垃圾回收 并发事务的恢复 使用严格两阶段封锁 从后向前扫描日志,因为一个事务可能多次更新一个数据项 并发事务的恢复 系统由后向前扫描日志,直至发现第一个checkpoint: -Redo-list:对每一个形如Ti commit的记录,将Ti加入Redo-list -Undo-list:对每一个形如Ti start的记录,如果Ti不属于Redo-list,将Ti加入undo-list 并发事务的恢复 Redo-list和undo-list构造完毕后,恢复过程如下: -从最后一个记录开始由后至前从新扫描日志,并且对undo-list中的每一个日志记录执行Undo操作。忽略redo-list中的事务。 -找到最近一条checkpoint记录。 -系统由最近一条checkpoint记录由前向后扫描日志,并且对redo-list中事务Ti的每一个日志记录执行redo操作。 并发事务的恢复 为什么要先进行Undo操作,后进行Redo操作? 非易失性存储器数据丢失的故障 周期性地将整个数据库的内容转储到稳定存储器上 如果发生了导致无力数据库块丢失的故障,利用最后一次转储将数据库恢复到前面的抑制状态,一旦完成该恢复,系统再利用日志将数据库系统恢复到最近的一致状态 * * T1 read(A); A := A ? 50; write(A
您可能关注的文档
- 13Tex(涤棉混纺)并条工序.doc
- 13揭开原子核外电子运动地面纱.ppt
- 14.济南的冬天.ppt
- 14_4 迈克尔逊干涉仪 时间相干性.ppt
- 15.4遗传病和优生优育-课件(苏教版-八年级下).ppt
- 15.5-生物的变异.pptx
- 15课宁为战死鬼,不作亡国奴.doc
- 15除尘工.doc
- 16.小土尘.ppt
- 160819婚姻受苦论1.ppt
- 2023年第三次病案管理委员会会议纪要.doc
- 病案管理科2023年第二季度医疗质量考核分析报告.doc
- 病案管理科2023年第一季度医疗质量考核分析报告.doc
- 2025年新人教版英语三年级上册 Unit4 B talk 教学课件.pptx
- 2025年新人教版英语三年级上册 Unit 4 Plants around usPart C 第8课时 Reading time 教学课件.pptx
- 2025年新人教版英语三年级上册 Unit3 A talk 教学课件.pptx
- 2025年新人教版英语三年级上册课件 U4 B learn.pptx
- 2025年新人教版英语三年级上册 Unit6 A Letters and sounds 教学课件.pptx
- 2025年新人教版英语三年级上册课件 B Let's talk.pptx
- 2025年新人教版英语三年级上册课件 U3 C Reading time.pptx
文档评论(0)