温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

什么是分布式事务

发布时间:2020-07-31 10:13:45 来源:亿速云 阅读:146 作者:Leah 栏目:互联网科技

本篇文章给大家分享的是有关什么是分布式事务,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。

为了实现分布式事务,需要使用下面将介绍的两阶段提交协议。 * 阶段一:开始向事务涉及到的全部资源发送提交前信息。此时,事务涉及到的资源还有最后一次机会来异常结束事务。如果任意一个资源决定异常结束事务,则整个事务取消,不会进行资源的更新。否则,事务将正常执行,除非发生灾难性的失败。为了防止会发生灾难性的失败,所有资源的更新都会写入到日志中。这些日志是永久性的,因此,这些日志会幸免于难并且在失败之后可以重新对所有资源进行更新。 * 阶段二:只在阶段一没有异常结束的时候才会发生。此时,所有能被定位和单独控制的资源管理器都将开始执行真正的数据更新。 在分布式事务两阶段提交协议中,有一个主事务管理器负责充当分布式事务协调器的角色。事务协调器负责整个事务并使之与网络中的其他事务管理器协同工作。 为了实现分布式事务,必须使用一种协议在分布式事务的各个参与者之间传递事务上下文信息,IIOP便是这种协议。这就要求不同开发商开发的事务参与者必须支持一种标准协议,才能实现分布式的事务。

在 Transact-SQL 中启动的分布式事务的结构相对比较简单:

1. Transact-SQL脚本或应用程序连接执行启动分布式事务的 Transact-SQL 语句。

2. 执行该语句的 Microsoft® SQL Server™ 成为事务中的主控服务器。

3. 然后脚本或应用程序对链接的服务器执行分布式查询,或对远程服务器执行远程存储过程。

4. 当执行了分布式查询或远程过程调用后,主控服务器将自动调用 MS DTC 以便登记分布式事务中链接的服务器和远程服务器。

5. 当脚本或应用程序发出 COMMIT 或 ROLLBACK 语句时,主控 SQL Server 将调用 MS DTC 管理两阶段提交过程,或者通知链接的服务器和远程服务器回滚其事务。

语句

控制分布式事务的 Transact-SQL 语句很少,因为多数工作都由 Microsoft® SQL Server™ 和 MS DTC 在内部完成。Transact-SQL 脚本或应用程序中所需的 Transact-SQL 语句只须:

●启动分布式事务。

●对链接的服务器执行分布式查询,或对远程服务器执行远程过程调用。

●调用标准 Transact-SQL COMMIT TRANSACTION、COMMIT WORK、ROLLBACK TRANSACTION 或 ROLLBACK WORK 语句完成事务。

●对于任意一个 Transact-SQL 分布式事务,处理 Transact-SQL脚本或连接的 SQL Server 将自动调用 MS DTC 以协调事务的提交或回滚。

REMOTE_PROC_TRANSACTIONS 选项是一个兼容性选项,只影响对使用sp_addserver定义的远程服务器所进行的远程存储过程调用。有关远程存储过程的更多信息,请参见远程存储过程构架。该选项不适用于在使用sp_addlinkedserver定义的链接服务器上执行存储过程的分布式查询。有关分布式查询的更多信息,请参见分布式查询。

以上就是什么是分布式事务,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI