暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL - 开启慢日志查询

原创 伊织鸟 2023-06-12
351

本文用于指导在进行SCA兼容性测试前,对MySQL数据库进行配置,开启基于生产数据库全量SlowLog日志。开启慢查询日志无需重启数据库。

1、慢查询日志相关参数

slow_query_log:慢查询日志功能开关 long_query_time:记录到慢查询日志SQL时间阈值。默认1s slow_query_log_file:慢查询日志位置 min_examined_row_limit:记录到慢查询日志的record行数阈值。默0rows log_queries_not_using_indexes:记录所有不适用index的sql语句。默认off log_slow_admin_statements:记录ddl操作语句,包括 ALTER TABLE,ANALYZE TABLE,CHECK TABLE,CREATE INDEX,DROP INDEX,OPTIMIZE TABLE,REPAIR TABLE。默认off log_throttle_queries_not_using_indexes:#1分钟记录到slow log未使用索引的语句数目。默认0 --参数查询: select * from performance_schema.global_variables where variable_name in ('slow_query_log','long_query_time','slow_query_log_file','min_examined_row_limit','log_queries_not_using_indexes','log_slow_admin_statements','log_throttle_queries_not_using_indexes') order by 1 desc;

图片.png

2、开启全量慢查询

## 主节点备份参数文件 cp /etc/my.cnf /etc/my.cnf_`date +"%Y%m%d"`.bak ls -ltr /etc/my.cnf*

图片.png

## 数据库开启慢查询参数 mysql -uroot -p3306 set global slow_query_log=1; set global long_query_time=0.001; set global min_examined_row_limit=0; set global log_queries_not_using_indexes=1; set global log_slow_admin_statements=0; set global log_throttle_queries_not_using_indexes=0;

图片.png

## 参看修改过的参数 select * from performance_schema.global_variables where variable_name in ('slow_query_log','long_query_time','slow_query_log_file','min_examined_row_limit','log_queries_not_using_indexes','log_slow_admin_statements','log_throttle_queries_not_using_indexes') order by 1 desc;

图片.png

3、慢查询示例

tail -100f /home/mysql/mysqldata3306/slowlog/slow_full.log --记录SQL查询如下: select * from t2; # Time: 2023-03-23T20:07:37.034044+08:00 # User@Host: root[root] @ [192.168.118.135] Id: 7 # Query_time: 0.001519 Lock_time: 0.000134 Rows_sent: 1 Rows_examined: 1 SET timestamp=1679573257;

4、关闭慢查询

## 关闭慢查询 set global slow_query_log=0; ## 查看参数 show variables like 'slow_query_log';

图片.png

5、应急处理

## 处理空间爆满问题 # 查看目录 show variables like 'slow_query_log_file'; # 检查慢日志文件大小 du -sh /home/mysql/mysqldata3306/slowlog/slow_full.log # 检查文件目录大小 df -h # 压缩并打包文件 cp /home/mysql/mysqldata3306/slowlog/slow_full.log /home/mysql/mysqldata3306/slowlog/slow_full_`date +"%Y%m%d"`.log cd /home/mysql/mysqldata3306/slowlog/ tar zcvf slow_full_20230505.log.tar.gz slow_full_20230505.log # 删除文件 将文件目录拷贝至本地,并压缩后执行 > /home/mysql/mysqldata3306/slowlog/slow_full.log
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论