溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

MYSQL自動(dòng)發(fā)送慢SQL給開發(fā)人員的腳本

發(fā)布時(shí)間:2020-08-09 23:08:02 來源:ITPUB博客 閱讀:216 作者:czxin788 欄目:MySQL數(shù)據(jù)庫
MYSQL自動(dòng)發(fā)送慢SQL給開發(fā)人員的腳本

          最近,我寫了個(gè)腳本,就是當(dāng)mysql數(shù)據(jù)庫cpu平均5分鐘負(fù)載高于18時(shí),自動(dòng)分析最近5分鐘內(nèi)的慢sql,并把慢sql發(fā)送給相應(yīng)開發(fā)人員進(jìn)行優(yōu)化。
         同時(shí)用pt-kill命令運(yùn)行超過5分鐘的慢sql,以使mysql數(shù)據(jù)庫故障自愈

[root@MySQL02 ~]# cat /usr/local/script/send_slow_sql.sh 

點(diǎn)擊(此處)折疊或打開

  1. #!/bin/bash
  2. top5=`uptime |awk '{print $12}' |awk -F',' '{print $1}' |awk -F'.' '{print $1}'`
  3. if [ $top5 -gt 18 ];then
  4. echo -e "大家好: \n 在最近5分鐘內(nèi),mysql數(shù)據(jù)庫(172.16.2.4)的cpu平均負(fù)載是:`uptime |awk -F'users,' '{print $2}'`\n 是由以下慢sql引起的,煩請(qǐng)大家找到各自負(fù)責(zé)的慢sql進(jìn)行優(yōu)化,謝謝。" > /log/slow/report.txt
  5. #echo -e "\n 說明:以下內(nèi)容是由pt-query-digest分析慢日志得到的,如果你對(duì)以下內(nèi)容有疑問,可以訪問:http://blog.csdn.net/seteor/article/details/24017913進(jìn)行參考。" >> /log/slow/report.txt
  6. echo -e "\n 說明:以下內(nèi)容是由pt-query-digest工具分析慢日志得到的,如果你對(duì)以下內(nèi)容有疑問,可以百度pt-query-digest進(jìn)行報(bào)告解讀。" >> /log/slow/report.txt
  7. echo -e "\n 另外,此郵件是監(jiān)控腳本自動(dòng)觸發(fā)發(fā)送,請(qǐng)勿回復(fù)本郵件,謝謝!" >> /log/slow/report.txt
  8. pt-query-digest --since=5m /log/slow/slow-query.log >> /log/slow/report.txt
  9. cat /log/slow/report.txt | mail -s "最近5分鐘mysql數(shù)據(jù)庫發(fā)生了慢sql" chenzhixin@abc.com zhangqiang@abc.com
  10. #用pt-kill命令殺運(yùn)行超過5分鐘的慢sql,pt-kill名字在后臺(tái)執(zhí)行3分鐘后自動(dòng)退出,這樣做的目的是為了讓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每分鐘自動(dòng)調(diào)用一次即可。
        [root@MySQL02 ~]# crontab -l
        #發(fā)送慢sql給相應(yīng)人員
        * * * * * /usr/local/script/send_slow_sql.sh

        最終得到如下郵件:

        MYSQL自動(dòng)發(fā)送慢SQL給開發(fā)人員的腳本

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI