怎么解决Mysql Sleep线程引发的锁等待故障
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,本篇内容主要讲解"怎么解决Mysql Sleep线程引发的锁等待故障",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么解决Mysql Sleep线程引发的
千家信息网最后更新 2025年02月01日怎么解决Mysql Sleep线程引发的锁等待故障
本篇内容主要讲解"怎么解决Mysql Sleep线程引发的锁等待故障",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么解决Mysql Sleep线程引发的锁等待故障"吧!
背景:
负责的生产库出现告警too many connections.
解决过程:
1. 第一反应就是出现了大量的连接或者是DDL把实例打满了,随即登上实例尝试登陆,却发现已经连不上了。然后动态调大连接数后。使用如下SQL看到大量的UPDATE线程未执行完。
select id,host,user,db,command,state,time,left(info,200) from information_schema.processlist where command <>'Sleep' order by time desc limit 100;
2. 此时看到这个场景,大家大概率都会以为是表tbl_prod的ID没有索引所以是全表查找更新,然而看到执行计划却发现并不是,反而是主键更新。
explain UPDATE tbl_prod SET status=1 WHERE id = 1198445;
3. 随后查看innodb引擎当前的状态,发现很有意思的事了,这些update线程都在等待锁,以其中一个线程为例。
show engine innodb status\G
4. 此时基本上可以断定是有长事务未提交导致的大量主键更新等待了。我们采用如下SQL可以找到这个长连接。
select p.host,p.time,t.trx_mysql_thread_id,t.trx_started,left(p.info,100) from information_schema.innodb_trx t join information_schema.processlist p on t.trx_mysql_thread_id =p.id order by time desc,t.trx_started desc limit 20;
5. 可以看到上面的第一条执行时间最长的为NULL的线程占用锁时间最长,其后则是大量的update等待线程了。那么我们将这个最长的null线程给KILL掉,问题即得到解决。
kill 2323514;
到此,相信大家对"怎么解决Mysql Sleep线程引发的锁等待故障"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
线程
故障
最长
更新
内容
实例
时间
学习
实用
更深
有意思
事务
兴趣
动态
场景
实用性
实际
就是
引擎
操作简单
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
苏州企业软件开发价格
江苏办公系统软件开发要多少钱
软件开发者平台有哪些
fedora 服务器
上海ios软件开发管理
为什么显示已在服务器上
谷歌服务器可以升级吗
正大软件开发项目班
网络安全宣传周的讲话稿
软件开发与测试属于什么专业
违反网络安全红线影响
网络安全党课报告
网络安全应急处置工作办法
网络安全设备配置
上海灏胤网络技术有限公司
数据库强调的是系统软件_
学校机房用的计算机服务器型号
快速进入服务器
服务器电源线一个黄一个红
date存入数据库变数字了
路由器上怎么布置行为管理服务器
义乌网络安全检查
数据库期刊有哪些
dba数据库推荐
数据库信息修改格式
网络安全的重要价值
新冠网络安全体系建设
软件开发税率含硬件
可道云 服务器列目录
https代理软件开发