本文用于指导在进行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;

2、开启全量慢查询
## 主节点备份参数文件
cp /etc/my.cnf /etc/my.cnf_`date +"%Y%m%d"`.bak
ls -ltr /etc/my.cnf*

## 数据库开启慢查询参数
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;

## 参看修改过的参数
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;

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';

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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




