大神来,mysql xa导致的无法杀掉的事务怎么破?

山东大葱哥 2019-04-17 10:52:44
使用xa进行测试时,对mysql进行了一些xa各阶段锁定试验,后来出现卡死情况就杀掉了线程,重启了mysql服务。重启后发现插入、修改数据都正常,但无法修改表结构,修改表结构就处于卡死状态,过一分多钟报超时错误。 查询innodb_trx表,发现有两个事务处于运行中,网上资料都是说按照trx_mysql_thread_id找到对应进程杀掉,但我这里是0,没有进程id,没法杀,而且它是重启mysql服务后自动就运行的两个事务。 还有资料说,通过xa recover看当前xa事务,然后回滚或提交,但我这里通过xa recover查到的结果是空的。所以也不能解决。 大概推断应该跟redo undo有关系,xa事务异常后,mysql服务重启检测到了这两个事务就自动运行了,这是我的猜测,不知道对不对。 但我现在不知道怎么解决点这两个运行中的事务,求助各位大神,给点建议。
...全文
249 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
山东大葱哥 2019-04-18
  • 打赏
  • 举报
回复
引用 2 楼 山东大葱哥的回复:
[quote=引用 楼主 山东大葱哥的回复:]使用xa进行测试时,对mysql进行了一些xa各阶段锁定试验,后来出现卡死情况就杀掉了线程,重启了mysql服务。重启后发现插入、修改数据都正常,但无法修改表结构,修改表结构就处于卡死状态,过一分多钟报超时错误。 查询innodb_trx表,发现有两个事务处于运行中,网上资料都是说按照trx_mysql_thread_id找到对应进程杀掉,但我这里是0,没有进程id,没法杀,而且它是重启mysql服务后自动就运行的两个事务。 还有资料说,通过xa recover看当前xa事务,然后回滚或提交,但我这里通过xa recover查到的结果是空的。所以也不能解决。 大概推断应该跟redo undo有关系,xa事务异常后,mysql服务重启检测到了这两个事务就自动运行了,这是我的猜测,不知道对不对。 但我现在不知道怎么解决点这两个运行中的事务,求助各位大神,给点建议。
发完之后,不能编辑吗?[/quote] 来啊,快点帮忙,谢谢热心的朋友。
山东大葱哥 2019-04-17
  • 打赏
  • 举报
回复
引用 楼主 山东大葱哥的回复:
使用xa进行测试时,对mysql进行了一些xa各阶段锁定试验,后来出现卡死情况就杀掉了线程,重启了mysql服务。重启后发现插入、修改数据都正常,但无法修改表结构,修改表结构就处于卡死状态,过一分多钟报超时错误。 查询innodb_trx表,发现有两个事务处于运行中,网上资料都是说按照trx_mysql_thread_id找到对应进程杀掉,但我这里是0,没有进程id,没法杀,而且它是重启mysql服务后自动就运行的两个事务。 还有资料说,通过xa recover看当前xa事务,然后回滚或提交,但我这里通过xa recover查到的结果是空的。所以也不能解决。 大概推断应该跟redo undo有关系,xa事务异常后,mysql服务重启检测到了这两个事务就自动运行了,这是我的猜测,不知道对不对。 但我现在不知道怎么解决点这两个运行中的事务,求助各位大神,给点建议。
发完之后,不能编辑吗?
山东大葱哥 2019-04-17
  • 打赏
  • 举报
回复
引用 楼主 山东大葱哥的回复:
使用xa进行测试时,对mysql进行了一些xa各阶段锁定试验,后来出现卡死情况就杀掉了线程,重启了mysql服务。重启后发现插入、修改数据都正常,但无法修改表结构,修改表结构就处于卡死状态,过一分多钟报超时错误。 查询innodb_trx表,发现有两个事务处于运行中,网上资料都是说按照trx_mysql_thread_id找到对应进程杀掉,但我这里是0,没有进程id,没法杀,而且它是重启mysql服务后自动就运行的两个事务。 还有资料说,通过xa recover看当前xa事务,然后回滚或提交,但我这里通过xa recover查到的结果是空的。所以也不能解决。 大概推断应该跟redo undo有关系,xa事务异常后,mysql服务重启检测到了这两个事务就自动运行了,这是我的猜测,不知道对不对。 但我现在不知道怎么解决点这两个运行中的事务,求助各位大神,给点建议。
使用xa进行测试时,对mysql进行了一些xa各阶段锁定试验,后来出现卡死情况就杀掉了线程,重启了mysql服务。重启后发现插入、修改数据都正常,但无法修改表结构,修改表结构就处于卡死状态,过一分多钟报超时错误。 查询innodb_trx表,发现有两个事务处于运行中,网上资料都是说按照trx_mysql_thread_id找到对应进程杀掉,但我这里是0,没有进程id,没法杀,而且它是重启mysql服务后自动就运行的两个事务。 还有资料说,通过xa recover看当前xa事务,然后回滚或提交,但我这里通过xa recover查到的结果是空的。所以也不能解决。 大概推断应该跟redo undo有关系,xa事务异常后,mysql服务重启检测到了这两个事务就自动运行了,这是我的猜测,不知道对不对。 但我现在不知道怎么解决点这两个运行中的事务,求助各位大神,给点建议。

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧