使用SHOW PROCESSLIST和SHOW ENGINE INNODB STATUS排查mysql锁等待问题

现象:

mysql 查某表一直不能结束,查别的表没有问题。已知之前刚刚alter此表想把它的一个字段长度增长,但是这个操作一直没有结束。现在应该怎么办?

方案:

使用 SHOW PROCESSLIST; 查看当前所有活动的SQL线程,找出是否有长时间运行的查询或锁定。可配合SHOW ENGINE INNODB STATUS语句查看InnoDB锁等待情况。如果发现有阻塞的进程,可以通过 KILL [thread_id]; 来终止它。

具体经过:

SHOW PROCESSLIST结果如下。可以看到ID87337为我发起的修改字段操作,此时它正处于等待元数据锁的状态。此外也有多个对此表的操作都卡在相同状态:
在这里插入图片描述

通义的相关解释:Waiting for table metadata lock 状态并不一定意味着死锁,但它确实表明有多个会话在等待获取表的元数据锁。这种情况通常发生在以下几种场景:
长时间运行的事务:
如果有一个长时间运行的事务持有表的元数据锁(例如正在进行 ALTER TABLE、INSERT、UPDATE 或 DELETE 操作),其他试图访问同一表的操作将被阻塞,直到该事务完成。
未提交的事务:
如果某个事务对表进行了修改但没有提交或回滚,其他会话将无法获得所需的锁,导致它们处于等待状态。
DDL操作:
DDL(数据定义语言)操作如 ALTER TABLE 会隐式地对表加锁,阻止其他会话同时进行某些类型的访问,直到 DDL 操作完成。

然后我应该是把87337kill掉了,然后重新发起了一个alter命令,但这个新的命令仍然一直卡住不能结束。于是我重新调用SHOW PROCESSLIST,看到了以下结果。可看到新的命令ID为87360,又处在等待元数据锁的状态:
在这里插入图片描述

为了查看InnoDB锁等待情况,我使用命令SHOW ENGINE INNODB STATUS,返回的信息如下:

SHOW executed successfully=====================================
2025-01-17 02:30:02 7fe54c0cb700 INNODB MONITOR OUTPUT
=====================================
Per second averages calculated from the last 15 seconds
-----------------
BACKGROUND THREAD
-----------------
srv_master_thread loops: 2620 srv_active, 0 srv_shutdown, 10442746 srv_idle
srv_master_thread log flush and writes: 10445361
----------
SEMAPHORES
----------
OS WAIT ARRAY INFO: reservation count 2876
OS WAIT ARRAY INFO: signal count 2877
Mutex spin waits 683, rounds 3861, OS waits 113
RW-shared spins 2768, rounds 82977, OS waits 2761
RW-excl spins 4, rounds 70, OS waits 2
Spin rounds per wait: 5.65 mutex, 29.98 RW-shared, 17.50 RW-excl
------------
TRANSACTIONS
------------
Trx id counter 71256
Purge done for trx's n:o < 71216 undo n:o < 0 state: running but idle
History list length 747
LIST OF TRANSACTIONS FOR EACH SESSION:
---TRANSACTION 71242, not started
MySQL thread id 87347, OS thread handle 0x7fe54c047700, query id 704919 123.158.64.155 root
---TRANSACTION 71239, not started
MySQL thread id 87342, OS thread handle 0x7fe54d49d700, query id 704918 123.158.64.155 root
---TRANSACTION 71234, not started
MySQL thread id 87346, OS thread handle 0x7fe54c14f700, query id 704916 123.158.64.155 root
---TRANSACTION 71233, not started
MySQL thread id 87344, OS thread handle 0x7fe5446ae700, query id 704915 123.158.64.155 root
---TRANSACTION 71230, not started
MySQL thread id 87348, OS thread handle 0x7fe54445c700, query id 704914 123.158.64.155 root
---TRANSACTION 71231, not started
MySQL thread id 87350, OS thread handle 0x7fe5441c8700, query id 704922 123.158.64.155 root
---TRANSACTION 71247, not started
mysql tables in use 1, locked 2
MySQL thread id 87360, OS thread handle 0x7fe544732700, query id 704927 123.158.64.155 root Waiting for table metadata lock
alter table log_styleGeneration 
modify column  `prompt` varchar(1200) NOT NULL COMMENT '提示词'
---TRANSACTION 71240, not started
MySQL thread id 87345, OS thread handle 0x7fe54d4df700, query id 704920 123.158.64.155 root
---TRANSACTION 71241, not started
MySQL thread id 87349, OS thread handle 0x7fe5440c0700, query id 704921 123.158.64.155 root
---TRANSACTION 71208, not started
MySQL thread id 87327, OS thread handle 0x7fe54424c700, query id 704680 123.158.64.155 root
---TRANSACTION 71238, not started
MySQL thread id 87307, OS thread handle 0x7fe54d5a5700, query id 704917 123.158.64.155 root
---TRANSACTION 71225, ACTIVE 1229 sec
MySQL thread id 87357, OS thread handle 0x7fe54c0cb700, query id 704949 123.158.64.155 root init
SHOW ENGINE INNODB STATUS
Trx read view will not see trx with id >= 71226, sees < 71179
---TRANSACTION 71179, ACTIVE 4552 sec
MySQL thread id 87293, OS thread handle 0x7fe544354700, query id 704468 123.158.64.155 root
Trx read view will not see trx with id >= 71180, sees < 71180
--------
FILE I/O
--------
I/O thread 0 state: waiting for completed aio requests (insert buffer thread)
I/O thread 1 state: waiting for completed aio requests (log thread)
I/O thread 2 state: waiting for completed aio requests (read thread)
I/O thread 3 state: waiting for completed aio requests (read thread)
I/O thread 4 state: waiting for completed aio requests (read thread)
I/O thread 5 state: waiting for completed aio requests (read thread)
I/O thread 6 state: waiting for completed aio requests (write thread)
I/O thread 7 state: waiting for completed aio requests (write thread)
I/O thread 8 state: waiting for completed aio requests (write thread)
I/O thread 9 state: waiting for completed aio requests (write thread)
Pending normal aio reads: 0 [0, 0, 0, 0] , aio writes: 0 [0, 0, 0, 0] ,ibuf aio reads: 0, log i/o's: 0, sync i/o's: 0
Pending flushes (fsync) log: 0; buffer pool: 0
1026 OS file reads, 21448 OS file writes, 14504 OS fsyncs
0.00 reads/s, 0 avg bytes/read, 0.00 writes/s, 0.00 fsyncs/s
-------------------------------------
INSERT BUFFER AND ADAPTIVE HASH INDEX
-------------------------------------
Ibuf: size 1, free list len 0, seg size 2, 2 merges
merged operations:insert 2, delete mark 0, delete 0
discarded operations:insert 0, delete mark 0, delete 0
Hash table size 276671, node heap has 8 buffer(s)
0.00 hash searches/s, 0.00 non-hash searches/s
---
LOG
---
Log sequence number 633754370
Log flushed up to   633754370
Pages flushed up to 633754370
Last checkpoint at  633754370
0 pending log writes, 0 pending chkp writes
5866 log i/o's done, 0.00 log i/o's/second
----------------------
BUFFER POOL AND MEMORY
----------------------
Total memory allocated 137363456; in additional pool allocated 0
Dictionary memory allocated 216251
Buffer pool size   8191
Free buffers       6103
Database pages     2080
Old database pages 747
Modified db pages  0
Pending reads 0
Pending writes: LRU 0, flush list 0, single page 0
Pages made young 1, not young 0
0.00 youngs/s, 0.00 non-youngs/s
Pages read 999, created 1081, written 12653
0.00 reads/s, 0.00 creates/s, 0.00 writes/s
No buffer pool page gets since the last printout
Pages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/s
LRU len: 2080, unzip_LRU len: 0
I/O sum[0]:cur[0], unzip sum[0]:cur[0]
--------------
ROW OPERATIONS
--------------
0 queries inside InnoDB, 0 queries in queue
2 read views open inside InnoDB
Main thread process no. 1, id 140622723802880, state: sleeping
Number of rows inserted 5760, updated 69, deleted 10, read 1982107
0.00 inserts/s, 0.00 updates/s, 0.00 deletes/s, 0.00 reads/s
----------------------------
END OF INNODB MONITOR OUTPUT
============================Execution time: 26ms

使用通义帮忙分析,从SHOW PROCESSLIST和SHOW ENGINE INNODB STATUS返回的信息都可以看到,罪魁祸首是ID为87293的SQL线程,它已经活跃了一个多小时还未结束,极可能是它占有了元数据锁,导致别的操作阻塞:
在这里插入图片描述

于是我KILL 87293; 一切都OK了,ID87360的alter命令也顺利结束了。至于87293如何引起的就不得而知了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/20562.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity UI个人总结

个人总结&#xff0c;太简单的直接跳过。 一、缩放模式 1.固定像素大小 就是设置一个100x100的方框&#xff0c;在1920x1080像素下在屏幕中长度占比1/19&#xff0c;在3840x2160&#xff0c;方框在屏幕中长度占比1/38。也就是像素长款不变&#xff0c;在屏幕中占比发生变化 2.…

Jmeter如何计算TPS

1.在jmeter中计算出接口请求的个数 1175 1172 1172 174 200 416 384 1174 5867 2.计算接口平均响应时间 计算每个接口的请求次数乘以平均响应时间&#xff0c;所有接口相加&#xff0c;然后除以所有接口的数量总和&#xff0c;得到接口的平均响应时间 (1175*18191172*…

【R语言】回归分析与判别分析

一、线性回归分析 1、lm()函数 lm()函数是用于拟合线性模型&#xff08;Linear Models&#xff09;的主要函数。线性模型是一种统计方法&#xff0c;用于描述一个或多个自变量&#xff08;预测变量、解释变量&#xff09;与因变量&#xff08;响应变量&#xff09;之间的关系…

上线了一个微软工具(免费),我独自开发,本篇有源码

各位读者老爷们好。今天给大家推荐一个我刚上线微软商店的免费工具。 起因是有一些看似简单的文本处理功能,有时却很难找到针对性的工具。 比如我前几天有需求将一个巨大的TXT文件切割成多个指定大小的小TXT,却发现很难找到趁手的批量工具。 没有,那我就写一个。 python写…

vue elementui select下拉库组件鼠标移出时隐藏下拉框

方案&#xff1a; select 监听 mouseleave事件&#xff0c;当鼠标离开时通过唯一标识ref设置select 下拉框隐藏&#xff0c;并做失焦 <el-select v-model"value" :popper-append-to-body"false" class"select_drop_inner" size"s…

Docker 安装和配置 Nginx 详细图文教程

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall ︱vue3-element-admin︱youlai-boot︱vue-uniapp-template &#x1f33a; 仓库主页&#xff1a; GitCode︱ Gitee ︱ Github &#x1f496; 欢迎点赞 &#x1f44d; 收藏 ⭐评论 …

Golang学习笔记_34——组合模式

Golang学习笔记_31——原型模式 Golang学习笔记_32——适配器模式 Golang学习笔记_33——桥接模式 文章目录 一、核心概念1. 定义2. 解决的问题3. 核心角色4. 类图 二、特点分析三、适用场景1. 文件系统2. 图形界面3. 组织架构 四、代码示例&#xff08;Go语言&#xff09;五、…

LKT4202UGM新一代安全认证加密芯片,守护联网设备和服务安全

LKT4202UGM是提供身份验证、机密性和平台完整性服务的安全元件产品&#xff0c;可保护原始设备制造商免受克隆、伪造、恶意软件注入和未经授权生产的侵害。LKT安全元件经过最为严格的安全认证&#xff0c;可提供一站式解决方案。 为满足市场对LKT产品的需求&#xff0c;凌科芯…

人工智能之目标追踪DeepSort源码解读(yolov5目标检测,代价矩阵,余弦相似度,马氏距离,匹配与预测更新)

要想做好目标追踪,须做好目标检测,所以这里就是基于yolov5检测基础上进行DeepSort,叫它为Yolov5_DeepSort。整体思路是先检测再追踪,基于检测结果进行预测与匹配。 一.参数与演示 这里用到的是coco预训练人的数据集&#xff1a; 二.针对检测结果初始化track 对每一帧数据都输出…

网络安全不分家 网络安全不涉及什么

何为网络安全 信息安全是指系统的硬件、软件及其信息受到保护&#xff0c;并持续正常运行和服务。信息安全的实质是保护信息系统和信息资源免受各种威胁、干扰和破坏&#xff0c;即保证信息的安全性。 网络安全是指利用网络技术、管理和控制等措施&#xff0c;保证网络系统和…

【Spring+MyBatis】_图书管理系统(中篇)

【SpringMyBatis】_图书管理系统&#xff08;上篇&#xff09;-CSDN博客文章浏览阅读654次&#xff0c;点赞4次&#xff0c;收藏7次。&#xff08;1&#xff09;当前页的内容records&#xff08;类型为List&#xff09;&#xff1b;参数&#xff1a;userNameadmin&&pas…

利用acme.sh 申请 Google 免费证书

1.Google API权限准备 获取 EAB 密钥 ID 和 HMAC 登录你的 GCP 控制台面板&#xff0c;进入 Public Certificate Authority API 管理页面&#xff08;https://console.cloud.google.com/apis/library/publicca.googleapis.com&#xff09;点击启动&#xff1a; 或者直接在下一…

【基础架构篇十五】《DeepSeek权限控制:RBAC+ABAC混合鉴权模型》

某天深夜,电商平台运营总监误触按钮,把价值千万的优惠券设置成全员可领。当你想追究责任时,却发现系统日志写着"操作人:admin"。这血淋淋的事故告诉我们:权限控制不是选择题,而是生死攸关的必答题。本文将深挖DeepSeek的RBAC+ABAC混合鉴权体系,看看他们如何做…

Kafka

Kafka概念 https://kafka.apache.org/ Kafka是一种高吞吐量的分布式发布订阅消息系统&#xff0c;使用 Scala 语言编写。 producer通过网络发送消息到Kafka集群&#xff0c;然后consumer来进行消费&#xff0c;如下图&#xff1a; 服务端(brokers)和客户端(producer、consumer…

『大模型笔记』Ollama环境变量大全!

『大模型笔记』Ollama环境变量大全! 文章目录 一. Ollama环境变量大全!1. 命令方式查看2. 源码整理二. 参考文献一. Ollama环境变量大全! 1. 命令方式查看 Ollama常用的环境变量ollama help serve2. 源码整理 从源代码中整理了这份文档,希望有缘人能发现它。变量默认值说明…

系统架构设计基础

1. 软件架构的概念 软件架构&#xff0c;即软件体系结构&#xff0c;为软件系统提供一个结构、行为和属性的高级抽象。 软件架构作用&#xff1a; 1&#xff09;项目干系人进行交流的手段 2&#xff09;可传递和复用的模型&#xff0c;通过研究软件架构可预测软件的质量 3&…

OSI 参考模型和 TCP/IP 参考模型

数据通信是很复杂的&#xff0c;很难在一个协议中完成所有功能。因此在制定协议时经常采用的思路是将复杂的数据通信功能由若干协议分别完成&#xff0c;然后将这些协议按照一定的方式组织起来。最典型的是采用分层的方式来组织协议&#xff0c;每一层都有一套清晰明确的功能和…

揭秘区块链隐私黑科技:零知识证明如何改变未来

文章目录 1. 引言&#xff1a;什么是零知识证明&#xff1f;2. 零知识证明的核心概念与三大属性2.1 完备性&#xff08;Completeness&#xff09;2.2 可靠性&#xff08;Soundness&#xff09;2.3 零知识性&#xff08;Zero-Knowledge&#xff09; 3. 零知识证明的工作原理4. 零…

解锁机器学习核心算法 | 线性回归:机器学习的基石

在机器学习的众多算法中&#xff0c;线性回归宛如一块基石&#xff0c;看似质朴无华&#xff0c;却稳稳支撑起诸多复杂模型的架构。它是我们初涉机器学习领域时便会邂逅的算法之一&#xff0c;其原理与应用广泛渗透于各个领域。无论是预测房价走势、剖析股票市场波动&#xff0…

Visual Studio Code支持WSL,直接修改linux/ubuntu中的文件

步骤1 开始通过 WSL 使用 VS Code | Microsoft Learn 点击远程开发扩展包。 步骤2 Remote Development - Visual Studio Marketplace 点击install&#xff0c; 允许打开Visual Studio Code。 步骤3 共有4项&#xff0c;一齐安装。 步骤4 在WSL Linux(Ubuntu)中&#xf…