[MySQL] 生产环境MySQL数据库事务一直在RUNNING
2016-06-22 18:19
585 查看
主要是参考其他的博客。但是很有用。确实解决了我们之前遇到的一个问题。
不过场景不太一样。当时我们系统的代码大致如下:
start transaction;
try{
if(i == 0) return;
doSomething;
commit;
}catch(Exception e){
rollback()
}在特殊情况下,语句进入到if,出现事务running异常。
一直无法定位到问题,显示应用级别是系统运行大概两天就会高连接数挂掉。
大概解决思路如下:
1,使用如下语句查看事务
SELECT * FROM information_schema.INNODB_TRX\G; 发现一条一直在running的sql。
2,通过trx_mysql_thread_id:
1662332的去查询information_schema.processlist找到执行事务的客户端请求的SQL线程
select * from information_schema.processlist where id=1662333;
3,查看到端口和host以后,再在对应的服务器查看相关的应用和日志
netstat -nlatp |grep 23452
不过场景不太一样。当时我们系统的代码大致如下:
start transaction;
try{
if(i == 0) return;
doSomething;
commit;
}catch(Exception e){
rollback()
}在特殊情况下,语句进入到if,出现事务running异常。
一直无法定位到问题,显示应用级别是系统运行大概两天就会高连接数挂掉。
大概解决思路如下:
1,使用如下语句查看事务
SELECT * FROM information_schema.INNODB_TRX\G; 发现一条一直在running的sql。
2,通过trx_mysql_thread_id:
1662332的去查询information_schema.processlist找到执行事务的客户端请求的SQL线程
select * from information_schema.processlist where id=1662333;
3,查看到端口和host以后,再在对应的服务器查看相关的应用和日志
netstat -nlatp |grep 23452
ps -eaf|grep 12059查看到对应的服务器,然后查找事务相关的代码,定位到问题。
相关文章推荐
- liunx mysql 设置root密码
- MySQL数据库,将一列数据组合成一行,并以逗号分割,GROUP_CONCAT
- MySQL的优化点总结---通过计算多种状态的百分比看MySQL的性能情况
- 开启MYSQL远程连接权限
- mysql索引结构原理、性能分析与优化
- MySQL:常用基本SQL语句小结
- mysql查看表结构命令
- 商品管理系统--分类、品牌、属性、商品、价格、图片管理
- MySql插入中文数据,乱码问题的解决
- mysql忘记密码的处理方式总结
- mysql同步一张表设置
- mysql数据库主从同步之双主配置----互为主从
- mysql5.6安装
- mysqlbinlog工具基于日志恢复详细解释
- mysql存储过程批量插入数据
- 通过DIH工具增量将MySQL表中的数据导入Solr时,last_index_time小于当前时间8小时的问题
- mysql 主从配置
- Mysql 导出导入
- mysql sql执行时间查询
- mysql-5.7.13-win64便携版服务无法启动