当前位置: 首页 > news >正文

MySQL收集processlist记录的shell工具mysql_collect_processlist

文章目录

    • 安装指南
    • 日志文件内容
    • 日志分析参考
      • 1.简单检索
      • 2.统计不同状态的语句的数量
      • 3.按照时间统计
    • 注意事项
    • 仓库


这是一个纯脚本工具,用于从MySQL的information_schema.processlist视图中定期收集数据并保存到本地日志文件。支持MYSQL5.7-9.4版本。

template copy from PostgreSQL version : https://github.com/yansheng836/pg_collect_pgsa .

相关背景

  1. 某个慢SQL打满内存,导致系统kill掉mysql的进程,进而导致mysql进程重启,没有现场排查不了具体原因。(即使开启了慢SQL日志,没有执行完也不会记录到数据库日志中)
  2. 数据库连接数被打满,MYSQL相关监控数据丢失(因为也连不上数据库了),没有现场,不知道异常请求来源。

特性

  • 定期收集MySQL活动会话信息
  • 支持通过定时任务配置收集频率
  • 提供日志文件自动分割功能
  • 包含丰富的日志分析示例

安装指南

拉取代码,修改参数,设置定时任务。

# 克隆代码
git clone git@github.com:yansheng836/mysql_collect_processlist.git
cd mysql_collect_processlist# 修改必要参数(均以 MYSQL_ 开头,例如:MYSQL_PATH、MYSQL_HOST 等)
vi mysql_collect_processlist.sh# 查路径
pwd# crontab -e
# 每分钟执行
* * * * * sh pwd路径/mysql_collect_processlist.sh# 如果需要更频繁,比如每5秒执行(可自行调整秒数)
* * * * * sh pwd路径/mysql_collect_processlist_gap_second.sh 5

日志文件内容

测试版本:mysql Ver 8.0.43 for Linux on x86_64 (MySQL Community Server - GPL)

CI版本:MYSQL5.7-9.4

输出字段为:now(),ID,USER,HOST,DB,COMMAND,TIME,STATE,INFO

2025-09-09 14:44:02|42|root|localhost|mysql|Query|0|executing|SELECT now(),ID,USER,HOST,DB,COMMAND,TIME,STATE,INFO from information_schema.processlist
2025-09-09 14:44:02|5|event_scheduler|localhost|NULL|Daemon|8000|Waiting on empty queue|NULL

日志分析参考

1.简单检索

# cat/more/less/grep 
grep 'executing' processlist.log# 查找具体时间的相关日志
grep '2025-09-04 12:59' processlist.log# 在归档日志中,查找具体时间的相关日志
zless logs/processlist-20250904-12.log.gz  | grep '2025-09-04 12:59'

2.统计不同状态的语句的数量

# 第8列是状态:state
awk -F '|' '{print $8}' processlist.log | sort | uniq -c1 executing1 Waiting on empty queue

3.按照时间统计

# 按天统计
awk -F '|' '{print $1}' processlist.log | cut -d ' ' -f1 | sort | uniq -c2 2025-09-09
# 按小时统计
awk -F '[| ]' '{print $1 " " $2}' processlist.log | cut -d: -f1 | sort | uniq -c2 2025-09-09 14
# 按分钟统计
awk -F '[| ]' '{print $1 " " $2}' processlist.log | cut -d: -f1-2 | sort | uniq -c2 2025-09-09 14:44

注意事项

  1. 在业务繁忙的数据库上使用时,需要注意日志文件可能会快速增长,建议在特殊情况下短暂使用,并密切关注磁盘空间。

  2. info字段的长度受MySQL常量PROCESS_LIST_INFO_WIDTH限制,默认为65535(写死在源码中),超出部分会被截断。(足以满足绝大多数场景。)

  3. 账号权限问题,可不使用mysql。推荐最小权限:[创建空库,]创建普通用户,授予PROCESS权限即可。

    -- CREATE DATABASE processlist_db;
    GRANT PROCESS ON *.* TO 'processlist_user'@'hostname';
    

仓库

详见::

GitHub:https://github.com/yansheng836/mysql_collect_processlist/issues

Gitee:https://gitee.com/yansheng0083/mysql_collect_processlist/issues


文章转载自:

http://V5ts6865.fdsbs.cn
http://K4STZ2v2.fdsbs.cn
http://QEWkrlow.fdsbs.cn
http://5gI1uwbc.fdsbs.cn
http://5TjmvEnj.fdsbs.cn
http://6R8NIdAd.fdsbs.cn
http://TiQAy5P1.fdsbs.cn
http://RLfYD8Wb.fdsbs.cn
http://ZSlQSjQB.fdsbs.cn
http://Q1hKqs5V.fdsbs.cn
http://VhzN4WRs.fdsbs.cn
http://G3lwPDXr.fdsbs.cn
http://4MNT5vL3.fdsbs.cn
http://QJlCwb1R.fdsbs.cn
http://ZtBbkPlV.fdsbs.cn
http://jpMs5D1c.fdsbs.cn
http://82wl8PxA.fdsbs.cn
http://weEmlIbV.fdsbs.cn
http://Hab6auYU.fdsbs.cn
http://cMAZc8K0.fdsbs.cn
http://yI7zAghB.fdsbs.cn
http://WLN3xBsI.fdsbs.cn
http://Ra1kzX35.fdsbs.cn
http://ynC75B6w.fdsbs.cn
http://iAHi4BP8.fdsbs.cn
http://s0LY6NyQ.fdsbs.cn
http://9MJNnTuw.fdsbs.cn
http://4FrLWlLU.fdsbs.cn
http://YIxg0q0Y.fdsbs.cn
http://9vGtwsuY.fdsbs.cn
http://www.dtcms.com/a/376421.html

相关文章:

  • 计算机毕业设计 基于Hadoop的健康饮食推荐系统的设计与实现 Java 大数据毕业设计 Hadoop毕业设计选题【附源码+文档报告+安装调试】
  • 【nginx基础】Nginx安装指南:CentOS 7.9源码编译安装Nginx 1.28.0完整指南
  • ShardingJDBC实战指南
  • 数据库--MySQL数据管理
  • Java全栈学习笔记33
  • 网络学习笔记
  • GitHub每日最火火火项目(9.10)
  • 基于stm32的环境监测系统/智能家居/空气质量监测系统
  • 基于PyQt5和阿里云TTS的语音合成应用开发实战[附源码】
  • Linux的V4L2视频框架学习笔记
  • Android studio安装教程——超详细(含安装包安装教程)
  • 如何将大型音频文件从 iPhone 发送到不同的设备
  • 使用阿里云容器镜像服务 ACR
  • ffmpeg内存模型
  • Android面试指南(八)
  • 不止是进度条:深入PiXSingleGUI的TpSlideProgressBar组件架构设计​
  • Flutter 视频播放器——flick_video_player 介绍与使用
  • 【Java】Hibernate管理Session
  • 【ARMv7】系统复位上电后的程序执行过程
  • Ubuntu引导修复
  • PetaLinux_User_udev
  • 《链表的优雅封装:C++ list 模拟实现与迭代器之美》
  • 基于Redis设计一个高可用的缓存
  • 看涨看跌期权平价公式原理及其拓展
  • Django 基础入门:命令、结构与核心配置全解析
  • 中断系统介绍
  • 算法题 Day5---String类(2)
  • 关于Linux系统调试和性能优化技巧有哪些?
  • 大数据电商流量分析项目实战:Hadoop初认识+ HA环境搭建(二)
  • 软考中级习题与解答——第四章_软件工程(2)