说明:
最近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:
# 2013/11/06GuoFirst release
# PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
# export PATH
slowlog=/var/logs/slow_query.log
mv $slowlog /tmp/slow_query.log.`date +%Y%m%d%H`.log
mysqladmin -uusername -ppasswd --socket=/tmp/mysql.sock flush-logs
find /tmp/slow_query.log -ctime +7 -exec rm -f {} ; //删除7小时前日志
如需要定时切割,需要将该脚本放到计划任务(crontab -e)定时执行。。
附录:
暂空!!