slowlog慢日志切割


最近mySql数据库很慢,想了解下哪些sql语句的压力大,但mysql的slow_query.log太大,不好下载分析。可以通过mysqladmin flush-logs重新生成slow_query.log慢查询日志。
实现:
# mv slow_query.log  slow_query.log.bak.20131106  //修改原来slow_query.log名字
# mysqladmin  -uusername  -ppwd flush-logs  //可以看到生成了新的slow_query.log日志
试了下,这个命令不需要重启mysql,对线上机确实太重要了!!!
脚本:这个shell还没用过,这里先记录下!!
#!/bin/bash
# Program:
#       此程序用于定时切割mysql的慢查询日志!
# History:
# 2017/9/06    tangyajie    First release
# PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
# export PATH
slowlog=/mydata/data/slow.log
mv $slowlog /mydata/slowlog/slow.`date +%Y%m%d%H`.log
mysqladmin -uroot -pzabbix2017 --socket=/tmp/mysql.sock flush-logs
find /mydata/slowlog/slow.*.log -type f -mtime +5 -exec rm {} \; > /dev/null 2>&1

如需要定时切割,需要将该脚本放到计划任务(crontab -e)定时执行。。
附录:
# vim /etc/crontab
59 23 * * * sh /opt/cutslowlog.sh

你可能感兴趣的:(mysql,性能优化)