第七章 恢复系统的.ppt

  1. 1、本文档共54页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七章 恢复系统的

第七章 恢复系统; 因为有故障,才需要恢复。计算机可能发生的故障:电源、软件、机房失火、人为破坏等。恢复机制是数据库系统必不可少的组成部分,一旦故障发生,数据库必须保持事务的原子性和持久性。 ;7.1 故障分类 ;7.1 故障分类;1 .事务故障: a. 逻辑错误。事务由于某些内部条件而无法继续正常执行。如:非法输入、找不到数据、溢出等 b.系统错误。系统进入一种不良状态(如死锁),结果事务无法正常执行。 2 .系统崩溃:硬件故障,或数据库软件、操作系统漏洞,导致易失性存储器内容的丢失,并使得事务处理终止。而非易失存储器完好。 3 .磁盘故障:在数据传送操作过程中由于磁头损坏或故障造成磁盘上数据的丢失。 ; 恢复算法: ①在正常事务处理时采取的措施,保证有 足够的信息可用于故障恢复。 ②故障发生后采取的措施,将数据库内容 恢复到某个保证数据一致性,事务原子 性及持久性的状态。;7.2 存贮器结构 ;1.存贮器类型 易失存储器:主存、高速缓存 非易失存储器:磁盘、磁带 稳定性存储器:通过一些技术手段实现 2.稳定存贮器的实现 RAID ;3.数据访问 给一些概念和记号; 磁盘和主存间的块移动由下面两个操作完成。 ; Ti的私有工作区,在事务初始化时创建,事务提交或中止时删除。Ti的工作区中保存的每一个数据项X记为Xi,Ti通过在其工作区和系统缓冲区之间传送数据与数据库交互,所用的两个操作: ;7.3 恢复与原子性 ; 发生故障和简单的故障恢复过程,可能导致数据库的不一致。为了保持原子性的目标,需记录对数据修改的描述信息。 例:考虑事务Ti,将¥50从帐户A转到帐户B,A和B的初值分别为1000和2000,假设Ti执行过程中系统发生崩溃,且发生在output(BA)之后, output(BB) 之前,由于内存的内容丢失,无法知道事务的结局。可以调用恢复过程。; 重新执行Ti,A的值变为900而不是950,系统产生不一致。 不重新执行Ti,A的值变为950而B的值为2000 ,系统仍然不一致。 ;7.4 基于日志的恢复 ;日志:记录数据库中的所有更新活动。包括以下段 : *事务标识是执行Write操作的事务的唯一标识 *数据项标识是所写数据项的唯一标识,通常是数据项在磁盘上的位置。 *旧值是数据项的写前值。 *新值是数据项的写后值。 日志记录: Ti,start:事务Ti开始 Ti,Xj,V1,V2:事务Ti对Xj执行写操作,Xj的写前值是V1,写后值是V2。 Ti,commit:事务Ti提交 Ti,abort:事务Ti中止 ; 事务执行写操作前,生成该次写操作的日志。 为了使用日志恢复数据库,日志必须放在稳定存储器上。 ; 1.延迟的数据库修改 延迟修改技术通过在日志中记录所有的数据库修改,将一个事务的所有write操作拖延到事务部分提交时才执行,从而保证事务的原子性。 当事务部分提交时,日志上有关该事务的信息被用来执行延迟写。在事务完成其执行前系统崩溃,或事务中止,则忽略日志上的信息。 事务Ti的执行过程:Ti开始执行前,向日志中写入记录Ti,start,Ti的一次write(X)操作,导致向日志中写入一条新记录。当Ti部分提交时,向日志中写入记录Ti,commit。 ;当Ti部分提交时,日志中相关的记录用来执行延迟写。执行更新时可能发生故障,更新前将日志记录写到稳定存储器上。然后进行更新,事务提交。 ; 仍然用银行的例子说明: T0:read(A) T1: read(C) A:=A-50 C:=C-100 write(A) write(C) read(B) B:=B+50 write(B) 设执行顺序T0,T1,执行前,A,B,C的值分别为1000,2000,700。 ; 日志: T0,strat T0,A,950 T0,B,2050 T0,commit T1,strat T1,C,600 T1,commit ;利用日志,可以恢复易失性存储器上的信息丢失 恢复过程: redo(Ti):将事务Ti更新的所有数据项的值置为新值。 故障发生后,恢复子系统检查日志,以确定需要重新执行的事务。 事务Ti需要重新执行,当且仅当日志中有Ti,s

文档评论(0)

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

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

1亿VIP精品文档

相关文档