中科院分布式数据库系统及其应用 4章分布式数据库中的事务管理和恢复.ppt
《中科院分布式数据库系统及其应用 4章分布式数据库中的事务管理和恢复.ppt》由会员分享,可在线阅读,更多相关《中科院分布式数据库系统及其应用 4章分布式数据库中的事务管理和恢复.ppt(80页珍藏版)》请在三一办公上搜索。
1、徐俊刚(),分布式数据库系统及其应用,2009年2月2009年6月,分布式事务概述分布式事务的执行和恢复两阶段提交协议分布式数据库中的数据更新分布式事务增强数据库一致性总结,分布式数据库中的事务管理和恢复,第4章,事务概念,事务是访问或更新各种数据项的最小逻辑工作单位。它是一个操作序列它可以使数据库从一个一致状态到另外一个一致状态事务必须保证数据库的一致性事务执行期间数据库可能不一致,当事务提交(commit)时数据库必须是一致的,事务T开始,事务T结束,事务T的执行,数据库一致,数据库一致,数据库可能临时不一致,事务概念,分布式事务,集中式事务和操作数据在一个站点上不存在传输费用分布式操作数
2、据分布在不同的站点上事务也在多个站点上执行分布式事务是集中式事务的扩充站点和通信链路故障都可能导致错误发生分布式事务的恢复要比集中式事务复杂的多,事务分类:全局事务通常由一个主事务和在不同站点上执行的子事务组成主事务:负责事务的开始、提交和异常终止子事务:完成对相应站点上的数据库的访问操作局部事务仅访问或更新一个站点上的数据的事务,分布式数据库中的事务,ACID特性原子性(Atomicity)事务的操作要么全部执行,要么全部不执行,保证数据库一致性状态一致性(Consistency)事务的正确性,串行性,并发执行的多个事务,其操作的结果应与以某种顺序串行执行这几个事务所得的结果相同.持久性(D
3、urability)当事务提交后,其操作的结果将永久化,而与提交后发生的故障无关,分布式事务特性,隔离性(Isolation)虽然可以有多个事务同时执行,但是单个事务的执行不应该感知其他事务的存在,因此事务执行的中间结果应该对其他并发事务隐藏 此外,分布式数据库系统中还要考虑数据传送、通信原语和控制报文等。全局事务的主事务和子事务全部成功提交,才能改变数据库状态,有一个失败,其他子事务操作都要撤销。,分布式事务特性,从账号A向账号B转账$50:1.read(A)2.A:=A 50 3.write(A)4.read(B)5.B:=B+50 6.write(B),分布式事务特性举例,一致性要求:事
4、务执行后A 和 B账号的总金额不变原子性要求:如果事物在第3步和第6步之间故障,系统应该保证事务对数据库的修改没有产生,否则将导致不一致性,分布式事务特性举例,持久性要求:一旦用户通知说事务已经完成(即$50 转账成功),那么由该事务对数据库的修改就必须保证是永久的,即使是发生故障也如此,分布式事务特性举例,独立性要求 如果在第 3步和第6步之间,允许其他事务访问被修改的数据库的中间结果,那么它将见到一个不一致的数据库(也就是说,A+B 的和少于它的正确值)当然事务的串行执行将不会出现这种情况,但是数据库中事务并行执行的优点就损失了,分布式事务特性举例,Begin Transaction原语:
5、开始一个事务 T1 T2:子事务或操作序列:TnCommit原语:事务成功完成的结束Rollback或Abort原语:事务失败的结束,分布式事务的一般结构,活动 从事务开始执行的初始状态始,事务执行中保持该状态部分提交 事务的最后一个语句执行后进入该状态.失败 一旦发现事务不能正常执行时进入该状态夭折 当事务被回滚后,数据库恢复到事务开始执行前的状态。事务夭折后有两种选择重启动 仅当没有内部逻辑错误时杀死提交 当事务成功执行后.,分布式事务的状态,分布式事务的状态,进程:系统中可以并行执行的一段操作序列,分布式事务中的子事务序列是进程方式完成的进程说明:定义进程的行为模式,数据和数据上的操作,
6、功能等进行执行:按模式来启动这个进程,执行其中的操作过程:不可并行执行的操作序列事务代理(Agent):应用在各个Site上执行的若干进程,称作应用在该Site上的代理。代理可以执行应用程序员写的程序,也可以执行系统的原语函数,不同代理间通过报文实现通讯根代理(Root Agent)应用启动Site上的代理。根代理所在的Site称作原发Site.一般,根代理负责发系统原语,只有根代理可以请求创建新代理。,进程相关定义,为了协调执行分布式应用的全局操作,分驻于不同站点的诸事务代理必须进行协调,有如下规定:每一应用都有一个负责启动整个事务的总代理(或称根代理)只有总代理才能发出全局有效的事务开始、
7、提交和撤消原语只有总代理才能请求建立新的事务代理各站点上的子事务都执行成功,总代理才能决定提交该事务,否则总代理将决定撤销该事务,进程协作,转账应用,事务在两个账户之间执行“基金汇兑”操作。如果汇兑的金额小于转出帐号现有金额,就撤销如果大于等于就提交全局关系 Account(Account-number,Amount)假设账户分布在网络的不同站点上。,全局级转帐事务FUND_TRANSFER:read(terminal,$AMOUNT,$FROM_ACC,$TO_ACC);begin_transaction;select AMOUNT into$FROM_AMOUNT from ACCOUNT
8、 where ACCOUNT_NUMBER=$FROM_ACC;if$FROM_AMOUNT-$AMOUNT0 then abortelse begin update ACCOUNT set AMOUNT=AMOUNT-$AMOUNT where ACCOUNT_NUMBER=$FROM_ACC;update ACCOUNT set AMOUNT=AMOUNT-$AMOUNT where ACCOUNT_NUMBER=$TO_ACC;commitend,输入:汇出金额和转入/转出帐号,事务开始:检查转出帐号中是否 有足够的转出资金?,更新转出帐号存款余额创建AGENT1向代理1送消息:转入帐号
9、,金额,等待来自AGENT1的消息,成功?,提交事务:成功结束,撤消事务:失败结束,ROOT_AGENT,AGENT,接收来自根代理的信息,更新转入帐号存款余额,发送执行消息给根代理(成功或失败),是,否,否,转账应用处理流程,ROOT_AGENT;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 abortelse be
10、gin update ACCOUNT set AMOUNT=AMOUNT-$AMOUNT where ACCOUNT_NUMBER=$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),转账事务的两个代理,分布
11、式事务管理问题,处理数据项的多个副本分布式事务处理负责保持同一数据的多个副本之间的一致性。当某个副本所在站点发生故障时,负责生成与该数据其他副本一致的拷贝,以便于及时恢复。单个站点的故障一个站点或多个站点故障时,DDBMS继续与其他正常运行的站点一起继续工作当故障站点恢复时,DDBMS协同故障站点的DBMS,必须使得该站点与系统连接时,局部数据库与其他站点同步通信网络的故障必须能够处理两个或者多个站点间的通信网络故障分布式提交如果提交分布式事务过程中有一个站点发生故障,提交就会产生问题两阶段提交协议用于解决这一问题,分布式事务管理目标,目的:事务能有效、可靠、并发的执行除了策略之外,效率的几个
12、重要方面CPU和主存的使用控制报文响应时间可用性目标维护事务的ACID性质获得最小的主存和CPU开销,降低报文数目,加快响应时间获得最大限度的可靠性和可用性,抽象模型,LTM:Local Transaction Manager DTM:Distributed Transaction Manager,本地事务管理器 LTM1,本地事务管理器 LTM2,本地事务管理器 LTMn,分布式事务管理器 DTM1,分布式事务管理器 DTM2,分布式事务管理器 DTMn,站点 n,站点 2,站点 1,事务管理,DTM功能 保证分布式事务ACID特性,特别是原子性,使每一站点的子事务都成功执行,或者都不执行。
13、通过向各站点发begin-transaction,commit或者abort,create原语来实现的负责协调由该站点发出的所有分布式事务的执行启动分布式事务的执行将分布式事务分解为子事务,并将其分派到恰当的站点上执行决定分布式事务的终止(子事务都提交或者都撤销)支持分布式事务执行位置透明性实现了对网络上各站点的各子事务的监督和管理完成对整个分布式事务执行过程的调度和管理保证分布式数据库系统的高效率,Log原语:Local Begin-Trans,Local-Commit,Local-Abort,事务管理,LTM功能保证本地事务的ACID特性维护一个用于恢复的日志,代替DTM把分布事务的执行与
14、恢复信息记入日志参与适当的并发控制模式,以协调在该站点上执行的事务的并发执行。接收并遵从本Site上DTM发来的Log原语,记入Log并执行之,Log原语:Local Begin-Trans,Local-Commit,Local-Abort,分布式事务执行的控制模型,是指协调分布式事务中各成员DBMS执行其子事务的通用方法,有三种:主从模型:主、从控制器,LTM之间无通信三角模型:LTM之间可以传递数据,避免了主从之间不必要的传输层次控制模型:LTM还可再创建Agent,控制其它LTM执行,比前两种复杂,分布式事务管理器,局部事务管理器,局部事务管理器,局部事务管理器,数据库,数据库,数据库,
15、命令,命令,命令,回答,回答,回答,主从控制模型,分布式事务管理器,局部事务管理器,局部事务管理器,数据库,数据库,命令,命令,回答,回答,临时数据,三角控制模型,层次控制模型,故障类型事务故障由非预期的、不正常的程序结束所造成的故障,即事务没有执行到Commit或显示Rollback语句的故障,如:计算溢出、完整性破坏、操作员干预、输入输出错误、死循环等)处理方法:内存、磁盘上信息没有损失,使用Log做Rollback系统故障造成系统停止运行的任何事件,要求系统重启动,如CPU出错、缓冲区满、系统崩溃等处理方法:内存、I/O Buffer内容皆丢失,DB没有破坏,恢复时,搜索Log,确定Ro
16、llback的事务。,介质故障:辅助存储器介质遭破坏处理方法:如数据丢失,日志无损失,从某个Dump状态开始执行已提交事务;数据与日志都丢失 不可能完全恢复以上三种可以统称为站点故障.,通讯故障报文故障报文错报文失序报文丢失报文延迟网络分割故障(网络断连)通讯发生,既有某个报文Message从Site x 发往Site y,正常情况:(a)在某时间段Dmax 之后,x 站点收到y发回的应答信息(Ack)(b)y收到的Message是一个合适的次序(c)Message本身的信息是正确的 但是当某个Dmax之后,x还没收到y的Ack,则可能发生:(a)Message 或 Ack 信息丢失(b)网络
17、分割,即网络不通,问题可以进一步分为:a)是否是所在Site故障,还是系统响应过慢,还是网络流量过大b)若是故障,是通讯故障,还是 y 站点故障?c)如果是报文故障,是报文丢失还是应答丢失 对上述故障,其恢复程序可以有不同级别:一级:仅处理Site故障二级:Site故障及Message故障三级:Site故障及Message故障,还包括网络分割,事务恢复当发生故障时,保证事务原子性的措施称为事务故障恢复,简称事务恢复主要依靠日志来实现事务状态转移跟踪(操作)Begin_transaction:标记事务开始执行Read&write:表示事务对某个数据项进行读写End_transaction:表示读
18、写操作已完成,标记事务执行结束Commit_transaction:表示事务已经成功结束,任何改变已不可更改Rollback(abort):表示事务没有成功结束,撤销事务对数据库所作的任何改变,事务的提交点当事务T所有的站点数据库存取操作都已成功执行;所有操作对数据库的影响都已记录在日志中。到达提交点提交点后事务就成为已提交的事务,并假定其结果以永久记录在数据库中事务在日志中写入提交记录commit,T在系统发生故障时,需要扫描日志,检查日志中写入start_transaction,T,但没有写入commit,T的所有事务T恢复时必须回滚这些事务以取消他们对数据库的影响此外,还必须对日志中记录
19、的已提交子事务的所有写操作进行恢复。,事务的提交点相关操作日志文件保存到磁盘上一般先将文件的相关块,从磁盘拷贝到主存的缓冲区,然后更新,再写回磁盘缓冲区中会经常存在一个或多个日志文件块,写满后一次性写回磁盘系统崩溃时,主存中的信息会丢失,这些信息无法利用因此,事务到达提交点之前,未写到磁盘的日志必须写入,称为事务提交前强制写日志。,日志Log:记录所有对DB的操作事务标识:每个事务给定一个具有惟一性的标识符Log记录项:start_transaction,T,write_item,T,x,旧值,新值read_item,T,xcommit,Tabort,T写动作:写Log比写数据优先 Log存储
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中科院分布式数据库系统及其应用 4章分布式数据库中的事务管理和恢复 中科院 分布式 数据库 系统 及其 应用 中的 事务管理 恢复
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-2373077.html