• ADADADADAD

    MYSQL自动发送慢SQL给开发人员的脚本[ mysql数据库 ]

    mysql数据库 时间:2024-12-03 12:14:45

    作者:文/会员上传

    简介:

    MYSQL自动发送慢SQL给开发人员的脚本
    最近,我写了个脚本,就是当mysql数据库cpu平均5分钟负载高于18时,自动分析最近5分钟内的慢sql,并把慢sql发送给相应开发人员进行优化。

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    MYSQL自动发送慢SQL给开发人员的脚本
    最近,我写了个脚本,就是当mysql数据库cpu平均5分钟负载高于18时,自动分析最近5分钟内的慢sql,并把慢sql发送给相应开发人员进行优化。
    同时用pt-kill命令运行超过5分钟的慢sql,以使mysql数据库故障自愈
    [root@MySQL02 ~]# cat /usr/local/script/send_slow_sql.sh

    点击(此处)折叠或打开

      #!/bin/bash
      top5=`uptime |awk '{print $12}' |awk -F',' '{print $1}' |awk -F'.' '{print $1}'`
      if [ $top5 -gt 18 ];then
      echo -e "大家好: \n 在最近5分钟内,mysql数据库(172.16.2.4)的cpu平均负载是:`uptime |awk -F'users,' '{print $2}'`\n 是由以下慢sql引起的,烦请大家找到各自负责的慢sql进行优化,谢谢。" > /log/slow/report.txt
      #echo -e "\n 说明:以下内容是由pt-query-digest分析慢日志得到的,如果你对以下内容有疑问,可以访问:http://blog.csdn.net/seteor/article/details/24017913进行参考。" >> /log/slow/report.txt
      echo -e "\n说明:以下内容是由pt-query-digest工具分析慢日志得到的,如果你对以下内容有疑问,可以百度pt-query-digest进行报告解读。" >> /log/slow/report.txt
      echo -e "\n另外,此邮件是监控脚本自动触发发送,请勿回复本邮件,谢谢!" >> /log/slow/report.txt
      pt-query-digest --since=5m /log/slow/slow-query.log >> /log/slow/report.txt
      cat /log/slow/report.txt | mail -s "最近5分钟mysql数据库发生了慢sql" chenzhixin@abc.com zhangqiang@abc.com#用pt-kill命令杀运行超过5分钟的慢sql,pt-kill名字在后台执行3分钟后自动退出,这样做的目的是为了让mysql故障自愈
      pt-kill --no-version-check --host=localhost --user=root --password='hy_QWSA_root' --port=3306 --daemonize --log=/log/killed_query.log --run-time=180s --busy-time=300s --idle-time=5s --match-command=Query --victims all --kill


    然后把上面的send_slow_sql.sh放到crontab每分钟自动调用一次即可。
    [root@MySQL02 ~]# crontab -l
    #发送慢sql给相应人员
    * * * * * /usr/local/script/send_slow_sql.sh

    最终得到如下邮件:



    MYSQL自动发送慢SQL给开发人员的脚本.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: mysqlsql发送