Mysql分布式事务机制
Mysql当前分布式事务只支持Innodb存储引擎。1个分布式事务由多个行为在不同的数据库上执行,1个分布式事务的执行成功意味着相关数据库上的行为执行均成功。 使用分布式事务的应用程序设计1个或多个资源管理器和一个事务管理器。资源管理器(RM):用户提供通向事务的途径。数据库服务器是一个种资源管理器。该管理器必须提交or回滚由RM管理的事务。
事务管理器(TM):用于协调作为一个分布式事务的一部分事务。
要执行一个分布式事务,必须知道这个分布式事涉及了哪些资源管理器,并且把每个资源管理器的事务执行到事务可以被提交或回滚。根据每个资源管理报告的有关的执行情况的内容,这些分支事务必须作为一个原子性操作全部提交或回滚。
用于执行分布式事务的过程使用两阶段提交,发生时间在由分布式事务的各个分支需要进行的行动已经被执行之后。在第一阶段,所有的分支都预备好。他们被TM告知要准备提交。用于管理分支的每个RM会记录对于被稳定保存的分支的行动。分支指示是否他们可以这么做。这些结果被用于第二阶段。在第二阶段,TM告知RMs是否要提交或回滚。如果在预备分支时,所有的分支指示他们将能够提交,则所有的分支被告知要提交。如果在预备时,有任何分支指示它将不能提交,则所有分支被告之回滚。 分布式的语法:
XASTART xid ,用来唯一标识一个分布式事务。
XAENDxid
XAPRERARE xid
XACOMMIT xid
XAROLLBACK xid
XARECOVER
例子:
http://blog.51cto.com/liuhaodba/../attachment/201301/204227462.jpg
页:
[1]