阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

logrotate实现MySQL慢日志分割

264次阅读
没有评论

共计 1089 个字符,预计需要花费 3 分钟才能阅读完成。

MySQL 慢日志?

MySQL 的慢查询日志是 MySQL 提供的一种日志记录,它用来记录在 MySQL 中响应时间超过阀值的语句,具体指运行时间超过 long_query_time 值的 SQL,则会被记录到慢查询日志中。long_query_time 的默认值为 10,意思是运行 10s 以上的语句。
默认情况下,MySQL 数据库并不启动慢查询日志,需要我们手动来设置这个参数,当然,如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志或多或少会带来一定的性能影响。慢查询日志支持将日志记录写入文件,也支持将日志记录写入数据库表。

慢日志产生情况?

第一执行时间过长(大于设置的 long_query_time 阈值);第二未使用索引,或者未使用最优的索引。

这两种日志默认都是关闭状态,特别是未使用索引的日志,因为这一类的日志可能会有很多,所以还有个特别的开关 log_throttle_queries_not_using_indexes 用于限制每分钟输出未使用索引的日志数量。

慢日志输出

MySQL 慢查询日志默认情况下都是统统写入一个文件中,文件会越来越大,非常不方便我们分析。利用 logrotate 来对 MySQL 慢查询日志、错误日志进行切割,便于分析和查找问题。

定义日志论滚策略

[root@IDC_db_40 ~]# cat mysql-log-rotate
/opt/mysql/data/IDC_db_40-slow.log {
create 600 mysql mysql
dateext
notifempty
daily
maxage 60
rotate 30
missingok
compress
olddir /opt/mysql/data/
postrotate
# just if mysqld is really running
if test -x /opt/mysql/bin/mysqladmin && \
/opt/mysql/bin/mysqladmin ping -uroot -p123qwe,./ -S /tmp/mysql.sock &>/dev/null
then
/opt/mysql/bin/mysqladmin flush-logs -uroot -p123qwe,./ -S /tmp/mysql.sock
fi
endscript
}

设置计划任务

59 23 * * * /usr/sbin/logrotate -f mysql-log-rotate 

# 每天 23:59 进行日志分割

效果展示

logrotate 实现 MySQL 慢日志分割

每天都会生成一个压缩包非常方便管理!!!

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2018-02/150804.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计1089字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中