MYSQL自動傳送慢SQL給開發人員的指令碼
MYSQL自動傳送慢SQL給開發人員的指令碼
最近,我寫了個指令碼,就是當mysql資料庫cpu平均5分鐘負載高於18時,自動分析最近5分鐘內的慢sql,並把慢sql傳送給相應開發人員進行最佳化。
同時用pt-kill命令執行超過5分鐘的慢sql,以使mysql資料庫故障自愈
同時用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
最終得到如下郵件:
[root@MySQL02 ~]# crontab -l
#傳送慢sql給相應人員
* * * * * /usr/local/script/send_slow_sql.sh
最終得到如下郵件:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28916011/viewspace-2135707/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 自動記錄MySQL慢查詢快照指令碼MySql指令碼
- GUI圖形化自動化框架研發V4.0(傳送缺陷報告至開發人員郵箱)GUI框架
- 自動監控Oracle 表空間資訊併傳送郵件指令碼Oracle指令碼
- MySQL自動備份指令碼MySql指令碼
- 自動配置php、mysql、nginx的指令碼PHPMySqlNginx指令碼
- MySQL8.0的自動部署指令碼MySql指令碼
- MySQL被慢sql hang住了,用shell指令碼快速清除不斷增長的慢sql的辦法MySql指令碼
- iOS自動打包指令碼+自動上傳到firiOS指令碼
- Python3實現自動傳送MySql查詢併傳送郵件PythonMySql
- 傳送kafka訊息的shell指令碼Kafka指令碼
- 給Web開發人員的以太坊入坑指南Web
- 給 Web 開發人員的以太坊入坑指南Web
- 給 Web 開發人員推薦的文件生成工具Web
- 推薦給JavaScript開發人員的10個工具JavaScript
- 我也用Node寫個每天給她自動發微信的指令碼指令碼
- 面向前端開發人員的VSCode自動化外掛前端VSCode
- SQL Server映象自動生成指令碼方法SQLServer指令碼
- React Native開發中自動打包指令碼React Native指令碼
- 自動化指令碼安裝mysql shell指令碼範例指令碼MySql
- 千牛自動傳送訊息怎麼發?來試試UiBot千牛訊息傳送機器人UI機器人
- MySQL自動備份指令碼30天自動刪除MySql指令碼
- 用shell指令碼傳送帶附件的email指令碼AI
- Gitlab整合Sonarqube自動檢測程式碼併傳送報告給提交者Gitlab
- 測試開發之自動化篇-Appium指令碼開發APP指令碼
- 推薦給開發人員的實用命令列工具命令列
- 給TouchPad開發人員的忠告:轉移平臺
- 【工具】利用python 傳送MySQL 慢日誌郵件PythonMySql
- PHP慢指令碼日誌和Mysql的慢查詢日誌PHP指令碼MySql
- Oracle慢SQL監控指令碼實現OracleSQL指令碼
- java 自動升級sql指令碼 flyway 工具JavaSQL指令碼
- shell指令碼自動化採集效能sql指令碼SQL
- 用Python開發自動化測試指令碼Python指令碼
- 關於評審開發人員的sql語句SQL
- 開機自啟動Powershell指令碼指令碼
- shell指令碼:批次傳送curl請求指令碼
- 5.6 MySql主從自動切換指令碼MySql指令碼
- PHP開發人員常犯的10個MysqL錯誤PHPMySql
- Shell指令碼中傳送html郵件的方法指令碼HTML