日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Shell脚本实现监控MySQL主从同步【转】

發布時間:2023/11/21 37 生活家
生活随笔 收集整理的這篇文章主要介紹了 Shell脚本实现监控MySQL主从同步【转】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這篇文章主要介紹了Shell腳本實現監控MySQL主從同步,此腳本應該能適應各種各樣不同的內外網環境,并同時監控MySQL運行狀態,需要的朋友可以參考下

代碼如下:

[php]
#!/bin/bash
#check MySQL_Slave Status
#crontab time 00:10
MYSQLPORT=`netstat -na|grep "LISTEN"|grep "3306"|awk -F[:" "]+ '{print $4}'`
MYSQLIP=`ifconfig eth0|grep "inet addr" | awk -F[:" "]+ '{print $4}'`
STATUS=$(/usr/local/webserver/mysql/bin/mysql -u yuhongchun -pyuhongchun101 -S /tmp/mysql.sock -e "show slave status\G" | grep -i "running")
IO_env=`echo $STATUS | grep IO | awk ' {print $2}'`
SQL_env=`echo $STATUS | grep SQL | awk '{print $2}'`
DATA=`date +"%y-%m-%d %H:%M:%S"`
if [ "$MYSQLPORT" == "3306" ]
then
echo "mysql is running"
else
mail -s "warn!server: $MYSQLIP mysql is down" yuhongchun027@163.com
fi
if [ "$IO_env" = "Yes" -a "$SQL_env" = "Yes" ]
then
echo "Slave is running!"
else
echo "####### $DATA #########">> /data/data/check_mysql_slave.log
echo "Slave is not running!" >> /data/data/check_mysql_slave.log
echo "Slave is not running!" | mail -s "warn! $MYSQLIP MySQL Slave is not running" yuhongchun027@163.com
fi
[/php]

建議每十分鐘運行一次

[php]
*/10 * * * * root /bin/sh /root/mysql_slave.sh
[/php]

記得在每臺MySQL從機上分配一個yuhongchun的用戶,權限大些也沒關系,只限定在本地運行,如下所示:

[php]
grant all privileges on *.* to "yuhongchun"@"127.0.0.1" identified by "yuhongchun101";
grant all privileges on *.* to "yuhongchun"@"localhost" identified by "yuhongchun101";
[/php]

腳本設計思路:

1、此腳本應該能適應各種各樣不同的內外網環境,即IP不同的環境;
2、讓腳本也順便監控下MySQL是否正常運行;
3、Slave機器的IO和SQL狀態都必須為YES,缺一不可,這里用到了多重條件判斷-a。

腳本產生的背景環境:

我有不少基于公網類型的網站(沒有硬件防火墻,直接置于IDC機房)做的都是MySQL主從架構,從機主要起備份數據庫和冷備份的作用,雖然從機宕機了問題不大,但也影響數據的備份工作;這樣的網站有數十個,如果一個一個手動的檢查,每天都要浪費不少時間,所以玩了下腳本控,設計了如上腳本。

腳本實踐:

此腳本我已用于了生產環境,大家可以放在我們的從MySQL機器上,用來監控;另外建議有時也手動檢查下,有次發現rsync --delete 自動刪除了/data/data里面的數據,即從數據庫的位置,腳本沒有報警。

后期應用:

后期公司的MySQL數據庫準備由一主一從架色升級成一主多從,讀寫分離的架構,LVS作從數據庫的負載均衡器,此腳本自動監控從MySQL的replication狀態,如果不能同步則自動關閉本機的MySQL服務,免得影響整個網站的正常業務訪問。當然了,到時腳本的運行周期肯定也需要更改,由10分鐘變成秒級的,這個可以通過while循環來實現。

本文轉自:https://www.jb51.net/article/59495.htm

總結

以上是生活随笔為你收集整理的Shell脚本实现监控MySQL主从同步【转】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。