【Mysql】一天一个慢日志

线上最好的办法是一天一个慢日志,便于管理
  1. #!/bin/bash
    log_dir='/home/wwwlogs/mysql_slow'
    test -d  $log_dir
    if [ $? != 0 ];then
    mkdir -p $log_dir
    fi
    FILE=`date --date '1 days ago' +%Y%m%d`
    filename=`date --date '15 days ago' +%Y%m%d`


    /usr/bin/mysql -uroot -p'ppppppp' -h127.0.0.1 -e "set global slow_query_log = off;"
    mv /home/mysql/slow.log $log_dir/slow_log."$FILE"

  2. /usr/bin/mysql -uroot -p'ppppppp' -h127.0.0.1 -e "set global slow_query_log= on;"
    find $log_dir -name "*"$filename"*" -exec rm -f {} \;


切割日志
  1. #!/usr/bin/bash
    fulldate=`date +%Y%m%d --date="-1 day"`
    echo $fulldate
    halfdate=`date +%y%m%d --date="-1 day"`
    echo $halfdate


    more /home/data/mydata/3307/mysql-slow.log|grep -A 4 "Time: $halfdate">/soft/day_slowlog/3307/slow_log.$fulldate
    more /home/data/mydata/3308/mysql-slow.log|grep -A 4 "Time: $halfdate">/soft/day_slowlog/3308/slow_log.$fulldate



想着分析一下慢日志,可是一看慢日志都好几G了,而且是短日志格式,找到那个时间点相对比较难。于是写了一个脚本从慢日志按时间提取点日志。脚本:
  1. https://github.com/wubx/mysql-binlog-statistic/blob/master/bin/cutlogbytime
  2. 时间需要写时戳
  3. mysql> select unix_timestamp('2013-04-05');
    +------------------------------+
    | unix_timestamp('2013-04-05') |
    +------------------------------+
    | 1365091200 |
    +------------------------------+
    1 row in set (0.00 sec)


    mysql> select unix_timestamp('2013-04-06');
    +------------------------------+
    | unix_timestamp('2013-04-06') |
    +------------------------------+
    | 1365177600 |
    +------------------------------+
    1 row in set (0.00 sec)


  4. ./cutlogbytime /path/slowlogfile 1365091200 1365177600 > 20130405_slow.log
这样得到一天的日志文件就小一点的也容易分析了。而且可以根据天的文件,在取一天的某个时间点的日志。



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29096438/viewspace-2059657/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29096438/viewspace-2059657/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值