中华考试网·阅读新闻
软件水平 > 中级资格 > 数据库系统工程师 > 文章内容

计算机软考数据库系统工程师考试内容:网络与数据库(4)

2016-1-5编辑:guomu
分布事务管理

  1)分布式事务:在分布式数据库系统中,一个分布式事务是由若干个不同站点上的子事务组成的。

  2)分布式事务与集中式事务的相同特性:与集中式事务的特性相同为ACID,原子性、一致性、隔离性和持久性。

  分布式事务与集中式事务的不同特性:执行特性、操作特性和控制报文。执行过程中,分布式事务要必须创建一个控制进程,协调子事务、数据及控制报文;而集中式事务仅由并行调度算法进行调度即可。操作过程中,分布式事务还要加入大量的通信原语和控制原语。集中式事务没有使用控制报文。

  3)分布式数据库故障:分为节点故障(事务故障、系统故障、介质故障),通信故障(报文故障、网络分割故障)。其中报文故障包括报文错、报文丢失、报文延迟。

  4)分布式数据库的恢复原则:保证事务原子性的措施称为事务故障恢复,有几个原则是,

    孤立和逐步退出事务的原则UNDO;
    
    成功结束事务原则REDO;
    
    夭折事务的原则。(撤消全部事务,恢复到初态)
    
    在分布式事务恢复中,本地事务的恢复和集中式事务的恢复相同,由本地事务管理器LTM执行。整个的分布式事务的恢复由LTM与DTM(分布式事务管理器)协同完成。
    
  5)两阶段提交协议2PC(准备提交、建议提交/撤销、全局提交/撤销、确认)

    在2PC中,将分布式事务的某一个代理指定为协调者,其它代理都是参与者。参与者可以进行单方面撤销。2PC可以分为两个步骤:先是表决阶段,然后是执行阶段。表决中实行一票否决。

    2PC对故障的恢复:(1)场地故障    参与者在写入“建议提交”前发生故障    :    --协调者等到超时后将取消事务,该参与者自行可以                                       终止事务。
                    参与者在写入“建议提交”后发生故障:    --而其它参与者可以正常结束事务,该参与者                        要访问协调者或其它参与者获得之前协调者作出                        的决定并执行相应的操作。
                    协调者在写入“准备提交”后,在写入“全局提交/撤销”前发生故障:
                                        --协调者从头恢复提交协议
                    协调者在写入“全局提交/撤销”后,在写入“事务结束”记录前发生故障:
                                        --协调者恢复时要给所有的参与者重发之前的全局决定。
            (2)报文丢失    丢失参与者的回答报文(建议提交/撤销):    --协调者将取消整个事务
                    
                    丢失“准备提交”报文:            --协调者在超时后将取消整个事务

                    丢失“全局提交/撤销”报文:        --涉案参与者将请求协调者重发该报文

                    丢失“确认”报文:            --协调者将重发全局报文,参与者无论子事务 提交与否都要给予确认。
            (3)网络分割故障,整个网络被分为2组,协调者组和参与者组。各自进行故障处理。

  6)三阶段提交协议3PC(在2PC基础上增加了,全局预提交和准备就绪,两个报文,可以确认所有参与者的状态)

    第一阶段,协调者向所有的参与者发“准备提交”报文,只有所有参与者都投票“建议提交”,才会进入第二阶段;

    第二阶段,协调者向所有的参与者发“全局预提交”报文,只有所有参与者都投票“准备就绪”,才能进入第三阶段;

    第三阶段,协调者向所有的参与者发“全局提交”报文。

    3PC仅降低了阻塞发生的可能性,不是完全的非阻塞协议。

  3PC对故障的恢复:    协调者发出的“准备提交”报文延迟,参与者超时而撤销子事务;

            协调者等待参与者投票时超时,协调者将撤销事务;

            参与者处于“赞成提交”状态,而等待全局预提交时超时,参与者将进入恢复处理过程;

            参与者处于“准备就绪”状态,而等待全局提交时超时,参与者将进入恢复处理过程。

            在3PC协议中,恢复处理过程惟一可以做的是就近访问一个参与者,依照协调者之前作出的决定安排自己的操作。

计算机软考数据库系统工程师考试内容:网络与数据库(3)
咨询热线:4000-525-585(免长途费)