事务以及分布式事务的学习

sqlserver 数据库 事务 分布式事务 解读

首先来理解一下事务的概念,事务就是一个单独的单位,对于一系列的操作,只要其中有一条失败了,那么所有已经执行的操作都会回滚,作为事务我们要解决的问题就是确保结果的一致性,而不能是未知的。所以事务还有以下四个特点,从微软的官方文档拷贝出来如下:
  • 原子性   原子性工作的原子单位,只有一次执行;要么所有的工作已完成,要么没有执行任何一项工作。

  • 一致性  事务保持数据的一致性,将数据的一个一致性状态转换成另一个数据的一致性状态。 必须在语义上保留事务绑定的数据。

  • 隔离性   事务是一个隔离单元,每个隔离单元单独发生,独立于并发事务。 一个事务绝不可能看到另一个事务的中间阶段。

  • 持久性   事务是一个恢复单元。 如果事务失败,系统仍然处于之前提交事务的状态。

所谓的原子性就是依次执行,要么成功,要么统统失败;一致性就是数据在处理的过程中对于事务的结果,我们的数据由刚开始的抑制状态变成另外一个状态,保持事务的一致性;隔离性就是说事务的执行过程是隔离的,比如A事务在对表TABLE_A进行update的操作,而此时B事务也要来对TABLE_a来进行同样的修改,此时A事务已经开始,就会将表符合条件的列区进行锁定,而B是查看不到A的执行操作的,直到A事务COMMIT或者ROLLBACK,这时候释放锁,B才会开始事务,两个事务是完全独立的,中间不会有相互穿插的情况发生;持久性的话我们可以理解为当事务COMMIT以后,中间事务所做的任何修改都是不可逆的,就是这些修改对于数据库来说是永久性的修改。
事务的特性先了解这么多,我们下面来研究一下分布式事务,说实话这个还是很不熟悉的,现在开始学习状态啊:
分布式事务(微软官方给出的定义如下)
distributed transaction is a transaction that affects several resources." xml:space="preserve" style="font-family: 'Microsoft YaHei UI', 'Microsoft YaHei', SimSun, 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif; line-height: 18px;">一个 distributed transaction 就是一个影响多个资源的事务。 即使只有一个参与者无法保证这一点,整个事务也将失败,在事务范围内对数据的任何更改均将回滚。
分布式事务涉及到一个或者多个源的资源事务,sqlserver2000以后支持分布式事务,这样可以创建多个实例间的事务或者与其他数据的交互处理,分布式事务包括(微软给出的)
SQL Server 可以作为分布式事务内的资源管理器工作,并遵从用于分布式事务处理的X/Open XA 规范。
·事务管理器:Microsoft 分布式事务处理协调器 (MS DTC) 服务如事务管理器一样工作。MS DTC 遵从用于分布式事务处理的 X/Open XA 规范。
·两阶段提交 需要进行特殊的提交处理,以防止在管理跨越多个资源管理器的事务时出现问题。当刷新日志缓冲区使其可用时,提交大事务可能需要相对较长的时间。提交进程本身还可能遇到错误,需要强行回滚。如果事务管理器只是请求每个资源管理器提交,则可能从一些资源管理器返回成功状态,然后从某个资源管理器得到错误信息。这会导致冲突,因为所有分布式事务都应回滚,而部分事务已提交。两阶段提交通过将提交分成两相可以解决此问题:
·准备:事务管理器给每个资源管理器发送一个准备提交的请求。然后,每个资源管理器执行完成提交进程所需的所有大量占用资源的操作,如刷新所有日志缓冲区。资源管理器只保留维护事务完整性所需的最少的锁,然后给事务管理器返回成功状态。
·提交:如果所有资源管理对发给它们的准备请求返回成功状态,事务管理器将给每个资源管理器发送提交命令。然后,每个资源管理器快速将事务记录为已完成,并释放上次控制的资源。如果有任何资源管理器对准备请求返回错误信息,事务管理器将给每个资源管理器发送回滚命令

 这只是一个粗浅的理解吧当是!!!











相关推荐

  • [转载]R语言学习路线图以及R数据挖掘包 原文地址:http://bbs.pinggu.org/forum.php?mod=viewthread&tid=2597806现在对R感兴趣的人越来越多,很多人都想快速的掌握R语言,然而,由于目前大部分高校都没有开设R语言课程,这就
  • 分布式事务以及原子性 【南昌诺博源】【南昌诺博源软件】【开源it培训】分布式事务涉及不止一个事务资源。比如,在关系数据库和消息中间件之间通信的连接器,通常这些资源拥有类似begin()、rollback()、commit()的API。在此,一个事务资源通常是一个
  • 分布式基础学习 分布式基础学习所谓分布式,在这里,很狭义的指代以Google的三驾马车,GFS、Map/Reduce、BigTable为框架核心的分布式存储和计算系统。通常如我一样初学的人,会以Google这几份经典的论文作为开端的。它们勾勒出了分布式存储
  • 分布式前置机器学习在威胁情报中的应用(附PPT下载) 今天讲的是比较新的概念,我们在用分布式的前置的机器学习引擎做一些跟威胁情报相关的事情。注:本文提供PPT下载,请点击左下角“阅读原文”到36大数据网站原文末尾下载。大家觉得分布式和前置机器学习又和大数据平台背道而驰了怎么回事?所以我讲的时候
  • JAVA分布式数据库事务原理 JTA(JavaTransactionAPI)允许应用程序执行分布式事务处理--在两个或多个网络计算机资源上访问并且更新数据。JDBC驱动程序的JTA支持极大地增强了数据访问能力。本文的目的是要提供一个关于的Java事务处理API(JTA)
  • [转载]分布式系统的特点以及设计理念 看到网上一篇介绍分布式系统的文章,写的挺好的。分布式系统并不是什么新鲜词,在上个世纪七八十年代就已经有各种分布式系统出现。只是在互联网时代,分布式系统才大放异彩,尤其是Google更是把分布式系统运用到了极致。Google整个的软件构架都是
  • 如何用消息系统避免分布式事务? 网上转发http://www.wtoutiao.com/p/A72rmW.html前阵子从支付宝转账1万块钱到余额宝,这是日常生活的一件普通小事,但作为互联网研发人员的职业病,我就思考支付宝扣除1万之后,如果系统挂掉怎么办,这时余额宝账户并
  • 分布式光伏到底怎么了? 看看大佬们都怎么说 在国家能源局、财政部等有关部委的推动下,分布式光伏近年来得到蓬勃发展。但与地面电站不同,分布式光伏的建设资源分散、项目建设模式多、收益率弹性大、技术难度大,导致分布式光伏电站落地难,特别是“自发自用、余电上网”的项目难以广泛推广。如何将分布
  • 山西晋城泽州县开始申报分布式光伏补贴:0.1元/千瓦时 本月底截止   各乡镇、各有关单位:  根据泽政办[2015]64号《关于促进农村地区分布式光伏发电推广应用及光伏发电项目财政扶持的办法》精神,经研究决定开展泽州县分布式光伏发电项目资金补贴申报工作,现将有关事项通知如下:  一、补贴范围  2015年
  • 武安市北控新能源科技有限公司武安工业园15MWp分布式光伏发电项目 项目标签:武安新能源能源科技分布分布式项目概况【加入收藏】编号123196发布时间【2016年12月20日】进展阶段工程设计投资总额9168(万元)建设性质新建建设周期2017-02-22至2017-08-22所属行业能源设备来源无资金来源
  • 干货|大数据,从打好分布式系统的基础开始 分布式系统是大数据的基础,大数据是分布式系统的最佳实践。小编今天给大家分享的文章将介绍分布式系统对数据的基本处理方法。这些算法也是大数据各类组件技术的基础。分布式系统定义分布式系统是若干独立计算机的集合,但这些计算机系统集合从用户的使用角度
  • 当我们讨论分布式系统时,我们都讨论些什么? 【编者的话】分布式系统是一个庞大的议题,每个子领域都有大量的研究。学习分布式系统知识,如果不分主次地随看随学,效果不会好。本文介绍了分布式系统的主要概念,适合作为分布式系统的入门指南。当我们讨论分布式系统时,我们都讨论些什么?我一直在学习有

你的评论

就没有什么想说的吗?

最新博客

关于我们 免责声明 移动版

©2017传客网    琼ICP备15003173号-2    

本站部分文章来源于互联网,版权归属于原作者。
本站所有转载文章言论不代表本站观点,如是侵犯了原作者的权利请发邮件联系站长(weishubao@126.com),我们收到后立即删除。
站内所有资源仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您自己承担!

X