基本信息
文件名称:第十章故障恢复与系统容错2讲课文档.ppt
文件大小:2.68 MB
总页数:30 页
更新时间:2025-09-23
总字数:约8.03千字
文档摘要

第十章故障恢复与系统容错;优选第十章故障恢复与系统容错;10.2事务恢复

事务的原子化特征可以用耐久性和错误原子化来描述

。耐久性要求将数据项保存到永久存储器中并可随时使用,因此承认客户的提交请求意味着该事务的所有影响不仅记录在服务器的数据项中,而且记录在永久存储器中。所谓错误原子化,是指即使服务器发生故障,事务对数据项的影响也是原子化的。若某事务需具有恢复功能,则必须保证服务器的数据项具有耐久性,并且服务也应提供错误原子化功能。

虽然文件服务器和数据库服务器都将数据保存在永久存储器中,但其他的服务器并不是这样的,除非要求此服务器具有恢复功能。在本章中假定:服务器运行时将所有的数据项都保存在易失性存储器中,并把所有已提交的数据记录到恢复文件或文件中。这样恢复工作就是把数据项的最新提交版本从永久存储器中恢复到服务器上。由于数据库通常需要处理大量数据,所以它们通常通过高速缓存把数据项从易失性存储器转移到磁盘永九存储器中。

;耐久性和错误原子化并不是相互独立的,它们可由恢复处理程序这个单一机制来统一完成。恢复处理程序的主要任务是:

(1)对于已提交的事务,将其数据项保存到永久存储器中(恢复文件中);

(2)发生故障后,对服务器数据项进行恢复;

(3)通过重新组织恢复文件以提高恢复工作的效率;

(4)回收存储空间(在恢复文件中)。

在有些情况下要求恢复处理程序处理介质故障即恢复文件本身的故障。这时可使用一种称为稳定存储器的技术进行恢复文件复制,从而不仅可以使发生介质故障的可能性大大减少,而且当系统在进行写操作发生故障时,可保证写操作是原子化的。

;意向表:任何提供事务的服务器需要对客户事务所存取的数据项进行监控。当客户打开一个事务时,与之发生联系的第一台服务器提供一个新的事务标识符并将它返回给客户。这以后,事务中的每个客户请求(包括提交请求和异常终止请求),都应包含此标识符。在事务的执行过程中,应将更新操作作用于该事务数据项一系列的私有临时版本上。

服务器记录???有当前活跃事务的意向表,表中包含事务名以及由事务修改的数据项的值;提交事务时,服务器利用事务意向表识别该事务所影响的数据项,并用此事务所产生的每个数据项的临时版本代替原提交版本,然后将新的值写到服务器的恢复文件中。事务异常终止时,服务器通过意向表来删除所有由该事务所产生的数据项的临时版本。

;当服务器准备提交某事务时,它必须把该事务的意向表以及意向表中的数据项保存到恢复文件中,这样即使服务器临时发生故障也可以在以后执行提交操作。

当某事务所涉及的所有服务器全部同意提交该事务时,协调程序就会通知客户并发送消息到各参与服务器以执行提交操作。一旦已通知客户可进行提交,则相关服务器的恢复文件中必须包括足够多的信息,这样即使有服务器在准备提交或提交过程中发生故障,所有服务器也可提交该事务。

恢复文件表目:为了使服务器上的分布式事务具有恢复功能,恢复文件中除了保存数据项外还应保存更多的信息。这些信息包括每个事务的状态:提交、异常终止、准备提交。

通过把意向表保存到恢复文件中可使恢复文件中的每个数据项与一个特定的事务相联系,恢复文件中包含的项目如表101所示。;第7页,共30页。;10.2.1登录

登录技术是一种恢复文件的方法。在登录技术中,恢复文件代表某服务器所执行的所有事务的历史记录,其中包括数据项的值、事务状态表目以及意向表。在登录中表目的顺序反映了该服务器上事务准备提交、提交或异常终止的顺序。

在服务器正常工作时,若准备提交、提交或异常终止某事务,则需调用恢复处理程序;当服务器准备提交某事务时,恢复处理程序就将意向表中的所有数据项、意向表本身以及事务当前状态(准备)添加到恢复文件中;当事务最终真正提交或异常终止时,恢复处理程序再将相应的事务状态添加到恢复文件中。

恢复处理程序为每个数据项分配一个标识符,从而使得恢复文件中数据项的成功版本与服务器中的数据项保持一致。;图101说明了银行服务事务T和u的登录机制。在事务T和U开始执行之前重新组织登录,图中左边表示A、B、C值的快照。在本图中将A、B、C作为数据项的标识符。图中显示了事务T已提交而事务U准备提交但尚未提交的状态。当事务T准备提交时,将数据项A和B的值写入到登录中的P1和P2位置,然后写入T的准备事务状态表目及它的意向表中[(A,P1),(B,P2)];当提交事务时,将T的提交事务状态表目写人到P4位置;类似的,当事务U准备提交时,将数据项C和B的值写入到登录中的P5和P6位置,然后写入U的准备事务状态表目及它的意向表[(c,P