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給開發人員的腳本
分享地址:http://www.hntjjpw.com/article2/jsddic.html
成都網站建設公司_創新互聯,為您提供網站設計、網站維護、營銷型網站建設、標簽優化、面包屑導航、品牌網站設計
廣告
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源:
創新互聯