4章_分布式数据库中的事务管理及恢复2012-12-17.ppt

4章_分布式数据库中的事务管理及恢复2012-12-17.ppt

  1. 1、本文档共94页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1. 事务定义 事务是访问或更新各种数据项的最小逻辑工作单位。它是一个操作序列,也即是使数据库从一个一致状态转变为另外一个一致状态的正确程序。 事务是恢复和并发控制的基本单位。 例如:在关系数据库中,一个事务可以是一条SQL语句、一组SQL语句或 整个程序。事务和程序不同,一个程序中可包含多个事务。 1. 事务定义 1. 事务定义 事务必须保证数据库的一致性,事务执行期间数据库可能不一致。当事务提交(commit)时数据库必须是一致的。 2. 分布式事务定义 分布式事务 分布式数据库系统中的事务是一个分布式操作的序列,被操作的数据分布在不同的站点上,所以称为分布式事务。一个事务的执行可能涉及多个站点上的数据。事务也在多个站点上执行。 分布式事务是集中式事务的扩充,它的ACID特性的保证要比集中式事务复杂得多。因为有多个站点参与执行,其中任何一个站点的故障,或者将这些站点连接起来的任何一条通信链路的故障,都可能导致错误发生。 因此分布式事务的恢复要比集中式事务的恢复要复杂得多。 分布式事务分类: 全局事务:指一个要求访问或更新多个站点上 数据的事务。 通常由一个主事务和在不同站点上执行的子事务组成; 主事务:负责事务的开始、提交和异常终止; 子事务:完成对相应站点上的数据库的访问操作。 局部事务: 指仅访问或更新一个站点上的数据的事务。 分布式数据库系统中的事务具有ACID特性: 原子性(Atomicity) 指事务执行时的不可分割性。即事务的操作要么全部执行, 要么全部不执行,保证分布式数据库一致性状态。 一致性(Consistency) 指一个使分布式数据库从一个一致状态转变为另一个一致状态的正确程序。分布式事务执行完毕时,必须以正确的状态退出系统。如果事务不能达到一个正常的结束状态,就必须把分布式数据库退回到该事务执行前的初始状态。 持久性(Durability) 指一旦某个事务被提交后,则无论系统发生任何故障,都不会丢失该事务的执行结果。也即,已提交事务对数据库的改变在数据库中应该是持续存在的,这些改变不会因为故障而发生丢失。 隔离性( Isolation) 指一个正在执行的事务在其提交之前,决不允许把它对共享数据所作改变的结果提供给其他事务使用。也即事务的执行似乎与其他事务相隔离,事务的执行不应受到其他并发事务执行的干扰。虽然可以有多个事务同时执行,但是单个事务的执行不应该感知其他事务的存在,因此事务执行的中间结果应该对其他并发事务隐藏 。 此外,分布式数据库系统中还要考虑分布式事务独有的特性:大量的数据传送、通信原语和控制报文等。 在分布式数据库系统中,全局事务的主事务和子事务全部成功提交,才能改变数据库状态,有一个失败,其他子事务操作都要撤销。为了保证事务的原子性,要求组成这个分布式事务的各个子事务,要么全部提交(成功结束),要么全部撤销(不成功结束)。 如果至少有一个子事务执行失败,该分布式事务所包含的所有子事务,不管它的执行成功与否,一律都被撤销。各站点上的数据库全都回滚到相应子事务开始前的状态,从而使整个分布式数据库仍处于该分布式事务开始前的状态。 只有当一个分布式事务所包含的所有子事务,都能成功执行,各站点上的数据库全都进入一个新的一致状态,才能使整个分布式数据库转换为新的一致状态。 为保证分布式事务的ACID特性,更需要对各子事务进行协调和控制。 Begin Transaction原语:开始一个事务 T1[ ] T2[ ] : 子事务或操作序列 : Tn[ ] Commit原语:事务成功完成的结束 Rollback或Abort原语:事务失败的结束 例4.2 考虑旅行社的预定业务。大多数旅行社的预定业务除了预定航班外,还会 预定饭店和租车。如果把这些都归为一个预定事务,那么预定事务将有如下程序 结构: Begin Transaction reservation Begin Begin Transaction airline …… end.{airline} Begin Transaction hotel …… end.{hotel} Begin Transaction car …… end.{car} end 活动(active): 从事务开始执行

文档评论(0)

189****6140 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档