分布式数据库中的事务管理和恢复.ppt
《分布式数据库中的事务管理和恢复.ppt》由会员分享,可在线阅读,更多相关《分布式数据库中的事务管理和恢复.ppt(50页珍藏版)》请在三一办公上搜索。
1、第四章 分布式数据库中的事务管理和恢复小组成员:王波 翟晓玲 翟冰冰,4.1 分布式事务概述 4.2 分布式事务的执行与恢复 4.3 两阶段提交协议 4.4 分布式数据库中的数据更新 4.5 分布式事务增强数据库一致性 4.6 本章小结,4.1 分布式事务概述,4.1.1 分布式事务定义和特性4.1.2 分布式事务的结构和事务状态4.1.3 分布式事务管理的问题和目标,4.1.1 分布式事务定义和特性 1.分布式事务的定义 事务是为了实现特定的业务功能,而访问数据库的一个最小的逻辑工作单位,它是一个操作序列。分布式事务在分布式系统中,任何一个应用的请求最终都将转化成对分布在网络中相应站点上数据
2、库存取操作的序列,因此分布式数据库系统中的事务是一个分布式操作的序列,因被操作的数据分布在不同的站点上,所以称为分布式事务。,集中式事务与分布式事务的比较:继承外部特性扩充执行方式不同,ACID特性复杂恢复,在分布式数据库系统中,一个分布式事务即全局事务,通常由一个主(父)事务和在不同站点上执行的子事务(局部事务)组成。一般的,主事务负责事务的开始,提交和异常中止。各个子事务完成对相应站点上数据库的访问操作。全局事务一个要求访问或更新多个站点上数据的事务。局部事务一个仅仅访问或更新一个站点上数据的事务。,2.分布式事务的特性分布式数据库系统中的事务也应具有事务的ACID四个特性。即:原子性(a
3、tomicity)指事务执行时的不可分割性。这个特性确保了每个事务要么全部发生,要么全部不发生。如果发生,就是不可分割的瞬间的操作。当一个事务处在处理过程中时,其他进程(无论是否与事务有关)都不能看到任何中间状态。一致性(consistency)指事务的正确性,或者说一个分布式事务是一个使分布式数据库从一个一致状态转变为另一个状态的正确程序。例如在一个银行系统中,最关键的不变性是资金守恒规则。在任何内部转帐之后,银行的资金账目应与转帐前保持一致,但是在事务执行的短暂时刻内,这种不变性会受到损害。然后,事务结束之后,这种损害就没有了。如果若干个事务并发执行的结果与按希望的顺序串行执行的结果时等价
4、的,称该若干个事务的并发执行是可串行的,且其结果是正确的。因此,一致性特征也用可串行性(serializability)特征表示,此时,事务具有ASID特性。,隔离性(isolaty)指在一个正在执行的事务在其提交之前,决不允许把它对共享的数据所作改变的结果提供给其他事务使用。这就是说,事务的执行似乎与其他事务相隔离,即事务的执行不应受到其他并发事务执行的干扰。保持事务的隔离性是有许多原因的,保证维护事务的交互一致性是原因之一。耐久性(durability)指一旦某个事务被提交了,则无论系统发生任何故障,都不会丢失该事务的执行结果。这就是说,已提交事务对数据库的改变在数据库中应该是持续存在的,
5、这些改变不会因为故障而发生丢失。,例如:某银行的存款系统,账号001的存款余额为0元。分布式事务T由两个子事务T1和T2组成。站点i上的事务T1在001账号中存入1000元。如果在事务T1还未提交之前,站点j上的事务T2读取此1000元,并从001账号中取走1000元,事务T2提交,此时现金1000元就交给事务T2的用户。假定此时因某种原因,使事务T1的存款操作无效,即事务T1撤销。事务T1的撤销要求事务T2也撤销,因为事务T2的操作是建立在事务T1操作的基础上的。但是此时要撤销事务T2的操作是不可能的了,因为事务T2已经提交,其产生的结果是无法由系统来撤销的。,由于分布式数据库的分布特性,使
6、得分布式事务还具有自己独有的特性:在分布式事务中,除需要考虑访问数据库的存取操作序列外,还必须考虑大量的数据传送,通信原语和控制报文等,这些都是分布式事务所特有的性质。,4.1.2 分布式事务的结构和事务状态,应用,分布式事务的结构,分布式事务,分布式事务,分布式事务,子事务,子事务,子事务,子事务,子事务,子事务,分布式事务的一般结构为:Begin Transaction 原语:开始一个事务 T1 T2:子事务或操作序列:Tn Commit 原语:事务成功完成的结束 RollBack 或Abort原语:事务失败的结束,2.分布式数据库中进程的协作(1)两个概念进程:是一个具有一定独立功能的程
7、序关于某个数据集合的一次运 行活动。它有两个侧面:进程说明:定义进程的行为模式,包括数据和对数据的一组 操作,执行这组操作,完成某一功能。进程执行:按进程说明中所定义的模式来启动这个进程,执 行其中的那组操作。事务代理(Agent):在分布式数据库系统中,为了完成在不同站 点上的相应功能,分布式应用必须在这些站点中执行若干进 程,这些进程就称为该应用在那个站点上的“事务代理”。所 以,一个事务代理是一个本地进程,它代表应用来执行某些动作。启动一个事务造成在某一站点开始执行那个事务代 理。这个事务代理的执行又可能引起在另一个站点开始执行另一个事务。,(2)进程的协作 为了协调地执行分布式应用的全
8、局操作,分驻于不同站点的诸事务代理必须进行协调。为考虑事务的特性,把各站点上的诸代理组建成协作进程来完成一个全局应用,并作如下规定:1)每一应用均有一个负责启动整个事务的总代理或称根代理,建立总代理的站点称为源站点;2)只有总代理才能发出全局有效的事务开始,提交和撤销原语;3)只有总代理才能请求建立新的事务代理;4)各站点上的子事务都执行成功,总代理才能决定提交该事务,否则总代理将决定撤销该事务。,FUND_TRANSFER:Read(terminal,$AMOUNT,$FROM_ACC,$TO_ACC);Begin_Transaction;Select AMOUNT into$FROM_AM
9、OUNT from ACCOUNT where ACCOUNT_NUMBER=$FROM_ACC;if$FROM_AMOUNT-$AMOUNT0 then abort else begin Update ACCOUNT set AMOUNT=AMOUNT-$AMOUNT where ACCOUNT_NUMBER=$FROM_ACC;Update ACCOUNT set AMOUNT=AMOUNT-$AMOUNT where ACCOUNT_NUMBER=$TO_ACC;Commit end 图4.1全局级的FUND_TRANSFER事务,ROOT_AGENT AGENT:,输入:汇出金额和转出
10、/转入账号,事务开始:检查转出账号中是否又足够的转出资金,更新转出账号存款余额创建代理Agent向代理送信息:转入帐号,金额,等待来自Agent的消息,成功,提交事务:成功结束,否,撤销事务:失败结束,接收来自根代理的消息,更新转入账号存款余额,发送执行消息给根代理(成功或失败),ROOT-AGENT;Read(terminal,$AMOUNT,$FROM_ACC,$TO_ACC);Begin_transaction;Select AMOUNT into$FROM_AMOUNT from ACCOUNT where ACCOUNT_NUMBER=$FROM_ACCOUNT;if$FROM_AM
11、OUNT-$AMOUNT0 then abort else begin Update ACCOUNT set AMOUNT=AMOUNT-$AMOUNT where ACCOUNT=$FROM_ACC;Create AGENT;SEND to AGENT($AMOUNT,$TO_ACC);Commit endAGENT;Receive from ROOT_AGENT($AMOUNT,$TO_ACC);Update ACCOUNT set AMOUNT=AMOUNT+$AMOUNT where ACCOUNT=$TO_ACC;Send to ROOT_AGENT(SUCCESS/FALL)图4.
12、3两个代理组成的FUND_TRANSFER事务,4.1.3 分布式事务管理的问题和目标分布式事务管理的问题(1)处理数据项的多个副本 分布式事务管理负责保持同一数据的多个副本间的一致性。(2)单个站点的故障 当故障站点得到恢复时,DDBMS协同该故障站点上的DBMS,必须在该站点与系统重新连接时,使它的局部数据与其他站点同步。(3)通信网络的故障 系统必须有能力处理一个或多个连接站点的通信网络故障。这个问题的一个极端情况是发生网络分割。(4)分布式提交 如果在提交一个分布式事务过程中至少有一个站点发生故障的话,那么这个分布式事务的提交将会产生问题。,2.分布式事务管理的目标 事务管理的任务就是
13、负责当若干个事务并发执行和事务执行发生错误时,使数据库仍保持一致状态。,例如:某公司在银行中有A,B两个账号,现在公司想从账号A中取出一万元,存入账号B。那么就可以定义一个事务,该事务包括两个操作,第一个操作是从账号A中减去一万元,第二个操作是向账号B中加入一万元。在事务开始时,数据库是处于一个一致性状态。在事务执行时,如果只做第一个操作则用户逻辑上就会发生错误,少了一万元,这时数据库就处于非一致性状态。当我们接着做第二个操作,且成功提交后,数据库又处在了一致性的状态。,事务管理所追求的理想目标是高执行效率,高并行性和高可靠性。这三大理想目标往往不能兼得,因为他们之间密切相关,而又矛盾。可靠性
14、措施会使效率下降,而事务运行效率不仅取决于采用的策略,还与下列因素有关:(1)CPU和主存利用率(2)控制报文(3)相应时间(4)可用性由此可见事务管理的目标是:(1)维护分布式事务的原子性,一致性,耐久性和隔离性。(2)获得最小的主存和CPU开销,降低控制报文的传输个数和加快分布式事务的响应速度;(3)获得最大限度的系统可靠性和可用性。,4.2 分布式事务的执行与恢复,4.2.1 分布式事务管理的抽象模型 在分布式数据库系统中,事务管理功能分成两个层次。在每个站点上,又类似于集中式数据库系统中的局部事务管理器(LTM)进行局部事务的管理,负责本站点事务的执行,完成对本站点数据库数据的访问;对
15、整个分布式数据库系统,由驻留在各个站点上的分布式事务管理器(DTM)共同协作,实现对分布式事务的协调和管理。,图4.5分布式事务管理的抽象模型,站 点 1,站 点 3,站 点 2,本地事务管理器LTM1,分布式事务管理器DTM1,分布式事务管理器DTM1,本地事务管理器LTM2,分布式事务管理器DTM1,本地事务管理器LTM3,局部事务管理器LTM的结构和功能在许多方面与集中式系统类似,主要包括:(1)保证本地事务的ACID特性;(2)维护一个用于恢复的日志,代替DTM把用于分布式事务执行和恢复的信息记入日志。(3)参与适当的并发控制模式,以协调在该站点上执行的事务的并发执行。接收并听从本站点
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 分布式 数据库 中的 事务管理 恢复

链接地址:https://www.31ppt.com/p-4965734.html