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