MySQL之分布式事务

1.分布式事务原理

在MySQL中,使用分布式事务的应用程序涉及一个或多个资源管理器和一个事务管理器

1> 资源管理器(RM) 用于提供通向事务资源的途径。数据库服务器是一种资源管理器。该管理器必须可以提交或回滚由RM 管理的事务。
2> 事务管理器(TM)用于协调作为一个分布式事务一部分的事务。TM于管理每个事务的RMs进行通信。在一个分布式事务中,各个单个事务均是分布式事务的“分支事务”。分布式事务和分支通过一种命名方法进行标记。

MySQL执行分布式的MYSQL的时候,MySQL相当于一个用于管理分布式事务中的分布式事务的资源管理器。于MySQL服务连接的客户端相当于事务管理器。

2.分布式事务分步骤

  • 第一阶段,所有的分支都被预定,即它们被TM(事务管理器)告知要准备提交,这意味着用于管理分支的每个RM会记录对于被稳定保存的分支的行动。分支指示是否它们可以这么做。这些结果被用于第二阶段
  • 第二阶段,TM告知RMs是否要提交或回滚。如果在预备分支时,所有的分支指示它们能够提交,则所有分支被告知要提交。如果在预备时,有任何分支指示它们将不能提交,则所有分支被告知回滚。
     

3.分布式事务语法

å¨è¿éæå¥å¾çæè¿°

xid的组成

MySQL之分布式事务_第1张图片

4、启动XA事务进行操作

XA END xid [SUSPEND [FOR MIGRATE]]
				
XA PREPARE xid -- 使事务进行PREPARE状态,也就是两个阶段提交的第一个提交阶段

5、提交或回滚分支事务

-- 提交或者回滚具体的分支事务,就是两阶段提交的第二个提交阶段
XA COMMIT xid [ONE PHASE]  -- 提交XA事务
XA ROLLBACK xid  -- 回滚XA事务

6、查看分支详细信息

-- 查看当前分支的详细信息
XA RECOVER

7、书本上的案例

MySQL之分布式事务_第2张图片

参考:

https://www.cnblogs.com/cxxjohnson/p/9145548.html

https://blog.csdn.net/wuzhiwei549/article/details/79925618

你可能感兴趣的:(mysql,mysql,分布式事务)