热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

mysql释放空事务_MySQL空事务

问题描述;研发同事反应MySQL数据库有锁,检查innodb_trx时,发现有很多长时间未结束的空事务。这些事务的trx_mysql_thread_id

问题描述;

研发同事反应MySQL数据库有锁,检查innodb_trx时,发现有很多长时间未结束的空事务。

这些事务的trx_mysql_thread_id都为0,因此不能通过kill   id 的方式强制关闭这些长时间未结束的僵尸事务。

SELECT

trx_mysql_thread_id, trx_id, trx_started, sysdate(), trx_state,  trx_query

FROM information_schema.innodb_trx t

WHERE  (UNIX_TIMESTAMP(sysdate()) - UNIX_TIMESTAMP(t.trx_started)) > 10;

问题分析

从trx_state 列的信息来看,这些事务都在Running 状态,但trx_query 为null。直观上无法分析出这些事务对应的SQL.

在information_schema中的PROCESSLIST, INNODB_LOCKS,INNODB_LOCK_WAITS 这几张表中也没分析出有价值的信息。

通过show engine innodb status\G  确实发现有很多Active的事务

---TRANSACTION 328393988035152, not started

0 lock struct(s), heap size 1136, 0 row lock(s)

---TRANSACTION 16946872173, ACTIVE (PREPARED) 1648933 sec recovered trx

1 lock struct(s), heap size 1136, 0 row lock(s), undo log entries 1

---TRANSACTION 16944705639, ACTIVE (PREPARED) 1708259 sec recovered trx

4 lock struct(s), heap size 1136, 2 row lock(s), undo log entries 1

---TRANSACTION 16944693889, ACTIVE (PREPARED) 1708524 sec recovered trx

2 lock struct(s), heap size 1136, 1 row lock(s), undo log entries 1

---TRANSACTION 16944693748, ACTIVE (PREPARED) 1708549 sec recovered trx

1 lock struct(s), heap size 1136, 0 row lock(s), undo log entries 1

正常的事务不应该执行这么长时间,而不被发现。有没有可能是XA事务呢?

通过xa recover;  检查 , 果然发现很多XA事务。

XA RECOVER;

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

| formatID | gtrid_length | bqual_length | data                                                 |

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

|        1 |           32 |            8 | 5685c69b0df34ccc94e9da437c399344xdb1_002             |

|        1 |           32 |           10 | 84e2f7d6fd674f5592f135415e9c0ad4idcent_002           |

|        1 |           32 |            9 | f0eedc6c38894e88837771f019ddc090imail_002            |

|        1 |           32 |           10 | 6677f0102a6c4a0aab2c4696bd20d690idcent_002           |

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

如何释放这些长时间未提交的XA事务呢?

通过MySQL官方文档,最终决定采用rollback的方式,回滚掉这些XA事务。

xa rollback '5685c69b0df34ccc94e9da437c399344','xdb1_002',1;

Query OK, 0 rows affected (0.00 sec)

依次回滚这些长时间未结束的XA事务, 再次检查innodb_trx 未发现相关的事务信息。

---------------------

作者:lwei_998

来源:CSDN

原文:https://blog.csdn.net/lwei_998/article/details/83149231

版权声明:本文为博主原创文章,转载请附上博文链接!



推荐阅读
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文详细介绍了MySQL表分区的创建、增加和删除方法,包括查看分区数据量和全库数据量的方法。欢迎大家阅读并给予点评。 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了如何在MySQL中将零值替换为先前的非零值的方法,包括使用内联查询和更新查询。同时还提供了选择正确值的方法。 ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • ubuntu用sqoop将数据从hive导入mysql时,命令: ... [详细]
  • Oracle seg,V$TEMPSEG_USAGE与Oracle排序的关系及使用方法
    本文介绍了Oracle seg,V$TEMPSEG_USAGE与Oracle排序之间的关系,V$TEMPSEG_USAGE是V_$SORT_USAGE的同义词,通过查询dba_objects和dba_synonyms视图可以了解到它们的详细信息。同时,还探讨了V$TEMPSEG_USAGE的使用方法。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 本文介绍了如何使用PHP代码将表格导出为UTF8格式的Excel文件。首先,需要连接到数据库并获取表格的列名。然后,设置文件名和文件指针,并将内容写入文件。最后,设置响应头部,将文件作为附件下载。 ... [详细]
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 如何在php中将mysql查询结果赋值给变量
    本文介绍了在php中将mysql查询结果赋值给变量的方法,包括从mysql表中查询count(学号)并赋值给一个变量,以及如何将sql中查询单条结果赋值给php页面的一个变量。同时还讨论了php调用mysql查询结果到变量的方法,并提供了示例代码。 ... [详细]
  • 微软评估和规划(MAP)的工具包介绍及应用实验手册
    本文介绍了微软评估和规划(MAP)的工具包,该工具包是一个无代理工具,旨在简化和精简通过网络范围内的自动发现和评估IT基础设施在多个方案规划进程。工具包支持库存和使用用于SQL Server和Windows Server迁移评估,以及评估服务器的信息最广泛使用微软的技术。此外,工具包还提供了服务器虚拟化方案,以帮助识别未被充分利用的资源和硬件需要成功巩固服务器使用微软的Hyper - V技术规格。 ... [详细]
author-avatar
Graceedelweiss_602
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有