mysql+xa事务怎么用_Mysql数据库分布式事务XA详解

本文演示了MySQL中XA事务的全过程,包括开始、插入数据、结束、准备及提交等阶段,并介绍了XARECOVER命令的使用方法及其返回的各项信息含义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

print?

mysql> XA START ‘xatest‘;

Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO test (name,tel) VALUES (‘123‘,‘123‘);

Query OK, 1 row affected (0.00 sec)

mysql> XA END ‘xatest‘;

Query OK, 0 rows affected (0.00 sec)

mysql> XA PREPARE ‘xatest‘;

Query OK, 0 rows affected (0.00 sec)

mysql>

mysql>

mysql> XA COMMIT ‘xatest‘;

Query OK, 0 rows affected (0.00 sec)

XA RECOVER 介绍

XA RECOVER 列出所有处于PREPARE状态的XA事务:

[python] view plaincopy

print?

mysql> XA RECOVER;

+----------+--------------+--------------+--------+

| formatID | gtrid_length | bqual_length | data   |

+----------+--------------+--------------+--------+

|        1 |            6 |            0 | xa1000 |

+----------+--------------+--------------+--------+

1 row in set (0.00 sec)

注释:

1. formatID 是事务xid的formatID部分。

2. gtrid_length 是xid的gtrid部分的长度,以字节为单位。

3. bqual_length 是xid的bqual部分的长度,以字节为单位。

4. data 是xid的gtrid部分和bqual部分的串联。

在用一个客户端环境下,XA事务和本地(非XA)事务互相排斥,如果已经发布了XA START来开启一个事务,则本地事务不会被启动,知道XA事务被提交或者被回滚为止;相反的,如果已经使用START TRANSACTION启动一个本地事务,则XA语句不能被使用,直到该事务被提交或者回滚为止,而且XA事务仅仅被InnoDB存储引擎支持。

如果XA事务达到PREPARE状态时MySQL服务器宕机,当服务器重启后,服务器会回滚任何未完成的XA事务,即使该事务已经达到了PREPARE状态;如果客户端连接终止,而服务器继续运行,服务器将回滚任何未完成的XA事务,即使该事务已经达到PREPARED状态。

Mysql数据库分布式事务XA详解

标签:本地   pytho   生成   0.00   nsa   引擎   本地事务   重启   lan

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:http://www.cnblogs.com/duyanming/p/7326960.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值