分布式数据库中的事务管理和恢复

上传人:zhu****ng 文档编号:253323519 上传时间:2024-12-11 格式:PPT 页数:44 大小:216.66KB
收藏 版权申诉 举报 下载
分布式数据库中的事务管理和恢复_第1页
第1页 / 共44页
分布式数据库中的事务管理和恢复_第2页
第2页 / 共44页
分布式数据库中的事务管理和恢复_第3页
第3页 / 共44页
资源描述:

《分布式数据库中的事务管理和恢复》由会员分享,可在线阅读,更多相关《分布式数据库中的事务管理和恢复(44页珍藏版)》请在装配图网上搜索。

1、,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,分布式事务概述,分布式事务的执行与恢复,两阶段提交协议,分布式数据库中的数据更新,分布式事务增强数据库一致性,本章主要内容,分布式事务概述,分布式事务定义和特性,分布式事务的结构和事务状态,分布式事务管理的问题和目标,分布式事务定义和特性,1.,分布式事务的定义,事务,是为了实现特定的业务功能而访问数据库的一个最小的逻辑工作单位,它是一个操作序列。,分布式事务,在分布式系统中,对分布在网络中不同站点上数据库存取操作的序列。,一个分布式事务即全局事务,通常由一个主(父)事务和在不同站点上执行的子事务(局部事

2、务)组成。,主事务负责事务的开始,提交和异常中止。,子事务完成对相应站点上数据库的访问操作。,全局事务是访问或更新多个站点上数据的事务。,局部事务是仅仅访问或更新一个站点上数据的事务。,2,.分布式事务的特性:ACID,原子性(atomicity)指事务执行时的不可分割性。这个特性确保了每个事务要么全部发生,要么全部不发生。,一致性(consistency)事务执行的结果必须使数据库从一个一致性状态转到另一个一致性状态。,隔离性(isolaty)一个事务的执行不被其他事务干扰。,持久性(durability)一个事务一旦提交,它对数据库中数据的改变应该是永久性的。无论系统发生任何故障,都不会丢

3、失该事务的执行结果。,应用,分布式事务的结构,分布式事务,分布式事务,分布式事务,子,事,务,子,事,务,子,事,务,子,事,务,子,事,务,子,事,务,分布式事务的一般结构为:,Begin Transaction 原语:开始一个事务,T1,T2,:子事务或操作序列,:,Tn,Commit 原语:事务成功完成的结束,RollBack 或Abort原语:事务失败的结束,2.分布式数据库中进程的协作,(1)两个概念,进程:,是一个具有一定独立功能的程序关于某个数据集合的一次运,行活动。,它有两个侧面:,进程说明:定义进程的行为模式,包括数据和对数据的一组,操作,执行这组操作,完成某一功能。,进程执

4、行:按进程说明中所定义的模式来启动这个进程,执,行其中的那组操作。,事务代理(Agent):在分布式数据库系统中,为了完成在不同站,点上的相应功能,分布式应用必须在这些站点中执行若干进,程,这些进程就称为该应用在那个站点上的“事务代理”。,(,2)进程的协作,为了协调地执行分布式应用的全局操作,分驻于不同站点的诸事务代理必须进行协调。为考虑事务的特性,把各站点上的诸代理组建成协作进程来完成一个全局应用,并作如下规定:,1)每一应用均有一个负责启动整个事务的总代理或称根代理,建立总代理的站点称为源站点;,2)只有总代理才能发出全局有效的事务开始,提交和撤销原语;,3)只有总代理才能请求建立新的事

5、务代理;,4)各站点上的子事务都执行成功,总代理才能决定提交该事务,否则总代理将决定撤销该事务。,FUND_TRANSFER:,Read(terminal,$AMOUNT,$FROM_ACC,$TO_ACC);,Begin_Transaction;,Select AMOUNT into$FROM_AMOUNT from ACCOUNT,where ACCOUNT_NUMBER=$FROM_ACC;,if$FROM_AMOUNT-$AMOUNT0 then abort,else begin,Update ACCOUNT set AMOUNT=AMOUNT-$AMOUNT,where ACCOUN

6、T_NUMBER=$FROM_ACC;,Update ACCOUNT set AMOUNT=AMOUNT-$AMOUNT,where ACCOUNT_NUMBER=$TO_ACC;,Commit,end,图1全局级的FUND_TRANSFER事务,ROOT_AGENT AGENT:,输入:汇出金额和转出/转入账号,事务开始:检查转出账号中,是否又足够的转出资金,更新转出账号存款余额,创建代理Agent,向代理送信息:转入帐号,金额,等待来自Agent的消息,成功,提交事务:成功结束,否,撤销事务:失败结束,接收来自根代理的消息,更新转入账号存款余额,发送执行消息给根代理,(成功或失败),ROO

7、T-AGENT;,Read(terminal,$AMOUNT,$FROM_ACC,$TO_ACC);,Begin_transaction;,Select AMOUNT into$FROM_AMOUNT from ACCOUNT,where ACCOUNT_NUMBER=$FROM_ACCOUNT;,if$FROM_AMOUNT-$AMOUNT0 then abort,else begin,Update ACCOUNT set AMOUNT=AMOUNT-$AMOUNT,where ACCOUNT=$FROM_ACC;,Create AGENT;,SEND to AGENT($AMOUNT,$T

8、O_ACC);,Commit,end,AGENT;,Receive from ROOT_AGENT($AMOUNT,$TO_ACC);,Update ACCOUNT set AMOUNT=AMOUNT+$AMOUNT,where ACCOUNT=$TO_ACC;,Send to ROOT_AGENT(SUCCESS/FALL),图3两个代理组成的FUND_TRANSFER事务,分布式事务管理的问题和目标,分布式事务管理的问题,(,1,)处理数据项的多个副本,分布式事务管理负责保持同一数据的多个副本间的一致性。,(,2,)单个站点的故障,当故障站点得到恢复时,,DDBMS,协同该故障站点上的,D

9、BMS,,必须在该站点与系统重新连接时,使它的局部数据与其他站点同步。,(,3,)通信网络的故障,系统必须有能力处理一个或多个连接站点的通信网络故障。这个问题的一个极端情况是发生网络分割。,(,4,)分布式提交,如果在提交一个分布式事务过程中至少有一个站点发生故障的话,那么这个分布式事务的提交将会产生问题。,2.,分布式事务管理的目标,事务管理的任务就是负责当若干个事务并发执行和事,务执行发生错误时,使数据库仍保持一致状态。,例如:,某公司在银行中有A,B两个账号,现在公司想从账号A中取出一万元,存入账号B。,1、定义一个事务,该事务包括两个操作,第一个操作是从账号A中减去一万元,第二个操作是

10、向账号B中加入一万元。,2、在事务开始时,数据库是处于一个一致性状态。,3、在事务执行时,如果只做第一个操作则用户逻辑上就会发生错误,少了一万元,这时数据库就处于非一致性状态。,4、当我们接着做第二个操作,且成功提交后,数据库又处在了一致性的状态。,事务管理所追求的理想目标是高执行效率,高并行性,和高可靠性。这三大理想目标往往不能兼得,因为他们之,间密切相关,而又矛盾。可靠性措施会使效率下降,而事,务运行效率不仅取决于采用的策略,还与下列因素有关:,(1)CPU和主存利用率,(2)控制报文,(3)相应时间,(4)可用性,由此可见事务管理的目标是:,(1)维护分布式事务的原子性,一致性,持久性和

11、隔,离性。,(2)获得最小的主存和CPU开销,降低控制报文的传,输个数和加快分布式事务的响应速度;,(3)获得最大限度的系统可靠性和可用性。,分布式事务的执行与恢复,分布式事务管理的抽象模型,在分布式数据库系统中,事务管理功能分成两,个层次。,在每个站点上,类似于集中式数据库系统中,的局部事务管理器(LTM)进行局部事务的管理,,负责本站点事务的执行,完成对本站点数据库数据,的访问;,对整个分布式数据库系统,由驻留在各个站点,上的分布式事务管理器(DTM)共同协作,实现,对分布式事务的协调和管理。,图5分布式事务管理的抽象模型,站,点,1,站,点,3,站,点,2,本地事务管理器,LTM1,分布

12、式事务管理器,DTM1,分布式事务管理器,DTM1,本地事务管理器,LTM2,分布式事务管理器,DTM1,本地事务管理器,LTM3,局部事务管理器LTM的结构和功能在许多方面,与集中式系统类似,主要包括:,(1)保证本地事务的ACID特性;,(2)维护一个用于恢复的日志,代替DTM把,用于分布式事务执行和恢复的信息记入日志。,(3)参与适当的并发控制模式,以协调在该站,点上执行的事务的并发执行。接收并听从本站点上,DTM代理发来的LOG原语,记入日志并执行之。,LOG原语包括:local begin_transaction,local commit,local abort,分布式事务管理器DT

13、M的功能包括:,(1)保证分布式事务的ACID特性,尤其是执行分布,式事务的原子性,使每个站点的子事务都成功执行,或都,不执行。这是通过向各个站点发,begin_transaction,commit或abort,create原语来实现的。,(2)负责协调由该站点发出的所有分布式事务的执,行。包括:启动分布式事务的执行;将分布式事务分解为,一些子事务,并将这些子事务分派到恰当的站点上去执,行;决定分布式事务的终止,即决定在该分布式事务中所,包含的所有站点上的子事务都撤销或都提交。,(3)支持分布式事务的执行位置透明性,这也是分,布式事务管理的最基本要求。分布式事务管理器根,据事务内部的逻辑划分为

14、若干子事务,按某种要求,分布到相应站点上执行,最后由源发站点提供事务,的最终结果。它实现了对网络上各站点的各个子事,务的监督与管理,完成对整个分布式事务执行过程,的调度和管理,从而保证分布式数据库系统的高效,率。,分布式事务执行的控制模型,分布式事务的控制模型是指协调分布式事务中,各成员DBMS执行其子事务的通用方法;,控制分布式事务执行的控制模型有:,1)主从模型,2)三角模型,3)层次控制模型,图6 分布式执行的主从控制模型,图7 分布式执行的三角控制模型,图8 分布式执行的层次控制模型,分布式数据库系统中的故障,事务故障恢复的基本概念,研究数据库系统中故障的恢复,主要是指如何恢复因,故障

15、而破坏的数据库,使数据库恢复到一个正确,一致的,状态。恢复的基本原理是数据冗余,即利用冗余存储在别,处的信息和数据,部分或全部重建数据库。,1.事务故障和事务恢复,当发生事务故障时,保证事务原子性的措施称为事务,故障恢复,简称为事务恢复。,事务恢复主要时依靠日志来实现的。,2.事务状态及状态转移,为保证可恢复性,系统需要保存事务的起始,终止,,提交或撤销的时间轨迹,事务恢复管理器还对下列操作进,行跟踪记录。,1)begin transaction:标记事务开始执行。,2)read或write:表示事务对某个数据项进行读或写。,3)End _transaction:表示事务的读或写操作已经结束,

16、并,标记事务执行结束。但是,在这一点,需要检查被该事务,所作的改变是否永久写入数据库(已提交),或事务由于,违反可串行性或其他原因而被撤销。,4)commit_transaction:表示事务已经成功结束,因此事务,执行的任何改变可以安全提交到数据库并且不会被撤销。,5)rollback(或 abort):表示事务没有成功结束,因此必须撤,销事务对数据库所作的任何改变或影响。,read/write,Begin end,transaction transaction commit,abort abort,active,Partially,committed,committed,failed,terminated,3.事务的提交点,当事务T所有的站点数据库存取操作都已成功执行,,并且所有操作对数据库的影响都已记录在日志中时,该事,务T就到达提交点(committed point).提交点后事务就成为,已提交的事务,并且假定其结果已永久记录在数据库中,(事务的永久性)。然后事务在日志中写入提交记录,commit,T.在系统发生故障时,需要扫描日志,检查那,些已在日志中写入start_tran

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

相关资源

更多
正为您匹配相似的精品文档
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  sobing.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!