浅议集中式数据库事务恢复机制.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浅议集中式数据库事务恢复机制

浅议集中式数据库事务恢复机制【摘要】集中式数据库系统由一个处理器、与它相关联的数据存储设备以及其他外围设备组成,它被物理地定义到单个位置。系统提供数据处理能力,用户可以在同样的站点上操作,也可以在地理位置隔开的其他站点上通过远程终端来操作,系统及其数据管理被某个或中心站点集中控制,本文探讨了集中式数据库的事务恢复机制。 【关键词】集中式数据库;事务恢复;机制 一、事务恢复 事务是数据库管理系统(DBMS)的执行单位,事务应满足ACID(原子性,一致性,隔离性,持久性)准则。保证事务在故障时满足ACID准则的技术称为恢复。要恢复丢失的数据,数据必须有后备的复本。对于恢复,数据冗余是必需的。恢复技术大致分为下列三种:一是单纯以后备复本为基础的恢复技术。即周期性地把磁盘上的数据库转储(dump)到磁带上,磁带上的数据库复本称为后备复本。二是以后备复本和运行记录(log或journal)为基础的恢复技术。运行记录是供恢复用的数据库运行情况的记录。三是基于多复本的恢复技术。如果系统中有多个数据库复本,而且这些复本具有独立的失效模式(指各个复本不致因同一故障而一起失效),则可利用这些复本互为备份,用于恢复。近来由于硬件价格下降,在某些可靠性要求高的系统中,采用镜像磁盘技术,即数据库以双复本的形式存于两个独立的磁盘系统中。由于第二种恢复技术在数据库系统中用得最多,大部分商品化的DBMS都支持这种恢复技术,以下我们对这种恢复技术进行详细介绍。 二、基于运行记录的恢复技术 运行记录是供恢复用的数据库运行情况的记录。一般包括下列三个内容:一是前像(before image,BI)。当数据库被一个事务更新时,所涉及的物理块更新前的映像(image)称为该事务的前像。前像以物理块为单位。有了前像,如果需要,可以使数据库恢复到更新前的状态,即撤消更新,这种操作在恢复技术中称为撤消(undo)。二是后像(after image,AI)。当数据库被一个事务更新时,所涉及的物理块更新后的映像(image)称为该事务的后像。后像以物理块为单位。有了后像,即使更新的数据丢失了,仍可以使数据库恢复到更新后的状态,相当于重做一次更新,这种操作在恢复技术中称为重做(redo)。三是事务状态。记录每个事务的状态,以便在恢复时做不同的处理。每个事务从交付DBMS到结束为止,每个事务有两种可能的结局:一是经提交(commit)而结束,这标志着事务已成功地执行(这相当于all),只有在事务提交后,事务对数据库的更新才能被其它事务访问;另一结局是由于事务本身或外部的原因,事务失败,要消除事务对数据库的影响(这相当于nothing)。对事务的这种处理称为卷回(rollback或abort)。对恢复来说,不必记每个状态,但是至少要区分出一个事务是提交的,还是未提交的。当数据库失效时,可取出最近后备复本,然后根据运行记录,对未提交的事务用前像卷回,这叫向后恢复(backward recovery);对已提交的事务,必要时用后像重做,这叫向前恢复(forward recovery)。用这种恢复技术,必须有运行记录。 三、运行记录的结构 下面列出运行记录中的一些基本内容,实际DBMS的运行记录还可能包括若干其它细节,具体结构也不一定相同:其一,活动事务表。活动事务表(active transaction list,简称为ATL)记录所有正在执行,尚未提交的事务的标识符(transaction identifier,简称TID)。其二,提交事务表。提交事务表(committed transaction list,简称CTL)记录所有已提交的事务的标识符。如果先从活动事务表中删除TID,再将TID加入提交事务表,则可能冒如下的危险:即TID刚从活动事务表中删除后,该事务的状态在系统中将无任何记录。其三,前像文件。前像文件可以看成一个堆文件,每个物理块有个块标识符(block identifier,简称BID)。设BID由TID、关系名和逻辑块号所组成,其中TID表示执行更新操作的事务,关系名表示被更新的关系,逻辑块号表示该块是关系中哪块的前像。逻辑块号在关系中是唯一的,即使一个块被删除了,它的逻辑块号也不允许重新使用。必须注意:undo操作是满足幂等(idempotent)性的,即undo(undo(undo…(x)))=undo(x)。因此,即使数据库中的某块还没有来得及更新,在恢复时对它做一次undo操作也无妨,无非在这一块上写入同样的内容而已。其四,后像文件。结构与前像文件相仿,不过其中记的是后像。在恢复时,可按提交事务表中的事务次序,按逻辑块号写入其后像。这相当于按提交的次序,重做各个事务。Redo操作也满足幂等性。 参 考 文 献

文档评论(0)

linsspace + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档