Mysql 如何在服务器崩溃后提交XA事务

Mysql 如何在服务器崩溃后提交XA事务,mysql,transactions,linux-mint,xa,mysql-5.7,Mysql,Transactions,Linux Mint,Xa,Mysql 5.7,我在Mint18上使用MySQL 5.7.19-0ubuntu0.16.04.1。我在准备XA事务时发现,然后服务器崩溃。服务重新启动后,我无法再处理事务。它仍然锁着桌子 mysql>xa启动'1' mysql>xaend'1' mysq>xa准备'1' sudo killall-9 mysqld sudo服务启动mysqld mysql>xa提交'1' 错误1399 XAE07:XAER_RMFAIL:当全局事务处于不存在状态时,无法执行该命令 mysql>xa启动'1' 错误1440 XAE

我在Mint18上使用MySQL 5.7.19-0ubuntu0.16.04.1。我在准备XA事务时发现,然后服务器崩溃。服务重新启动后,我无法再处理事务。它仍然锁着桌子

mysql>xa启动'1'

mysql>xaend'1'

mysq>xa准备'1'

sudo killall-9 mysqld

sudo服务启动mysqld

mysql>xa提交'1'

错误1399 XAE07:XAER_RMFAIL:当全局事务处于不存在状态时,无法执行该命令

mysql>xa启动'1'

错误1440 XAE08:XAER_DUPID:XID已存在

情况与类似,但我的版本相去甚远。
有什么遗漏吗?

我无法重现问题:

mysql>\!lsb_发布-说明 描述:Linux Mint 18.2 Sonya mysql>选择版本; +------+ |版本| +------+ | 5.7.19 | +------+ 设置为1行0.00秒 mysql>删除表(如果存在)`t`; 查询正常,0行受影响,1条警告0.00秒 mysql>创建表(如果不存在)`t` ->`id`INT ->引擎=InnoDB; 查询确定,0行受影响0.00秒 mysql>XA启动'1'; 查询确定,0行受影响0.00秒 mysql>插入到't'中` ->价值观1; 查询正常,1行受影响0.01秒 mysql>xaend'1'; 查询确定,0行受影响0.00秒 mysql>xaprepare'1'; 查询确定,0行受影响0.00秒 mysql>xarecover; +-----+-------+-------+---+ |formatID | gtrid | u长度| bqual | u长度|数据| +-----+-------+-------+---+ | 1 | 1 | 0 | 1 | +-----+-------+-------+---+ 设置为1行0.00秒 -已从其他会话中删除mysqld mysql>\!服务mysql状态| grep“活动” 活动:自33年代以来一直处于非活动状态 -从其他会话重新启动mysqld mysql>\!服务mysql状态| grep“活动” 活动:自3s前开始的活动运行 mysql>xarecover; 错误2006 HY000:MySQL服务器已消失 没有联系。正在尝试重新连接。。。 连接id: 当前数据库: +-----+-------+-------+---+ |formatID | gtrid | u长度| bqual | u长度|数据| +-----+-------+-------+---+ | 1 | 1 | 0 | 1 | +-----+-------+-------+---+ 设置为1行0.02秒 mysql>从't'中选择'id'; 空置0.00秒 mysql>XA启动'1'; 错误1440 XAE08:XAER_DUPID:XID已存在 mysql>XA提交'1'; 查询确定,0行受影响0.00秒 mysql>从't'中选择'id'; +---+ |身份证| +---+ | 1 | +---+ 设置为1行0.00秒
xa启动必须失败,这是预期的,这是挂起的xa事务。您需要先执行xa恢复