- 1、本文档共44页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第13章分布式数据库中事务管理与恢复
分布式事务概述
分布式事务的执行与恢复
两阶段提交协议
分布式数据库中的数据更新
分布式事务增强数据库一致性
;分布式事务概述;分布式事务定义和特性
1.分布式事务的定义
事务——是为了实现特定的业务功能而访问数据库的一个最小的逻辑工作单位,它是一个操作序列。
分布式事务——在分布式系统中,对分布在网络中不同站点上数据库存取操作的序列。;
一个分布式事务即全局事务,通常由一个主(父)事务和在不同站点上执行的子事务(局部事务)组成。
主事务负责事务的开始,提交和异常中止。
子事务完成对相应站点上数据库的访问操作。
全局事务是访问或更新多个站点上数据的事务。
局部事务是仅仅访问或更新一个站点上数据的事务。;
2. 分布式事务的特性:ACID
原子性(atomicity)——指事务执行时的不可分割性。这个特性确保了每个事务要么全部发生,要么全部不发生。
一致性(consistency)——事务执行的结果必须使数据库从一个一致性状态转到另一个一致性状态。。
隔离性(isolaty)——一个事务的执行不被其他事务干扰。
持久性(durability)——一个事务一旦提交,它对数据库中数据的改变应该是永久性的。无论系统发生任何故障,都不会丢失该事务的执行结果。
; 应用;分布式事务的一般结构为:
Begin Transaction 原语:开始一个事务
T1 [
T2 [
: 子事务或操作序列
:
Tn [
Commit 原语:事务成功完成的结束
RollBack 或Abort原语:事务失败的结束 ;2. 分布式数据库中进程的协作
(1)两个概念
进程: 是一个具有一定独立功能的程序关于某个数据集合的一次运
行活动。它有两个侧面 :
进程说明 :定义进程的行为模式, 包括数据和对数据的一组
操作, 执行这组操作, 完成某一功能。
进程执行:按进程说明中所定义的模式来启动这个进程,执
行其中的那组操作。
事务代理(Agent):在分布式数据库系统中,为了完成在不同站
点上的相应功能,分布式应用必须在这些站点中执行若干进
程,这些进程就称为该应用在那个站点上的“事务代理”。;
(2)进程的协作
为了协调地执行分布式应用的全局操作,分驻于不同站点的诸事务代理必须进行协调。为考虑事务的特性,把各站点上的诸代理组建成协作进程来完成一个全局应用,并作如下规定:
1)每一应用均有一个负责启动整个事务的总代理或称根代理,建立总代理的站点称为源站点;
2)只有总代理才能发出全局有效的事务开始,提交和撤销原语;
3)只有总代理才能请求建立新的事务代理;
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 ACCOUNT_NUMBER=$FROM_ACC;
Update ACCOUNT set AMOUNT=AMOUNT-$AMOUNT
where ACCOUNT_NUMBER=$TO_ACC;
Commit
end
图1全局级的FUND_TRANSFER事务
;ROOT_AGEN
文档评论(0)