1. 程式人生 > >MySQL主從複製狀態監控指令碼

MySQL主從複製狀態監控指令碼

一. 主從複製存活狀態監控指令碼

[[email protected] scripts]# mysql-master-slave-status.sh

#!/bin/bash

port=`ss -ntlp | grep 3306 | awk '{print $4}' | awk -F":" '{print $2}'`

array=($(mysql -uroot -p123456 -e "show slave status\G"|egrep "Running|Seconds_Behind_Master" | awk '{print $2}'))

if [ "$port" == "3306" ];then

    if [ "${array[0]}" == "Yes" ] && [ "${array[1]}" == "Yes" ] && [ "${array[2]} " == "0" ];then

        echo "MySQL slave status is ok !"

    else

        echo "MySQL slave status is wrong !"
    fi
fi



注:
1.==用於字串比較,-eq用於數字比較,這裡port是字串
2.array是一個數組是用來儲存Slave_IO_Running和Slave_SQL_Running的值,另外$(cmd)這個是用來執行括號裡面cmd的命令的,而array陣列則是用()擴起來的

二、 主從複製延時時間監控指令碼

url:https://www.cnblogs.com/kevingrace/p/6274073.html

方法一:

[[email protected] scripts]# cat mysql-copy-delay-time.sh

#!/bin/bash

num=`/usr/bin/mysql -uroot -p123456 -e "show slave status\G" | grep Seconds_Behind_Master | awk '{print $2}'`

if [ $num -eq 0 ];then

    echo "Master and slave replication is consistent"

else

    echo "Master and slave replication is inconsistent"

fi


方法二:
[
[email protected]
scripts]# cat mysql-copy-delay-time.sh #!/bin/bash /usr/bin/pt-heartbeat --database zabbix --table=heartbeat --monitor --host=39.108.217.12 --user=repsta --password=123456 --log=/opt/master-slave.txt --master-server-id=1 --daemonize cat /opt/master-slave.txt > /opt/master_slave.txt max_time=`cat /opt/master_slave.txt | grep -v '^$' | awk '{print $1}' | sort -k 1 -nr | head -1` NUM=$(echo "$max_time"|cut -d"s" -f1) if [ $NUM == "0.00" ];then echo "Master slave replication has no delay" else echo "Master slave replication delay,time $max_time" fi

三、主從複製資料一致性及強制同步監控指令碼

[[email protected] scripts]# cat mysql-data-consistent-status.sh
#!/bin/bash

NUM=`/usr/bin/pt-table-checksum --nocheck-replication-filters --no-check-binlog-format --replicate=test.checksums  --databases=zabbix h=39.108.217.12,u=repsta,p=123456,P=3306 | awk 'NR>3{sum+=$3}END{print sum}'`

if [ $NUM -eq 0 ];then

    echo "Data is consistent!"

else

    echo "Data is error!"
    /usr/bin/pt-table-sync --replicate=test.checksums h=39.108.217.12,u=repsta,p=123456 h=47.106.141.17,u=repsta,p=123456 h=47.98.97.124,u=repsta,p=123456  --print
    /usr/bin/pt-table-sync --replicate=test.checksums h=39.108.217.12,u=repsta,p=123456 h=47.106.141.17,u=repsta,p=123456 h=47.98.97.124,u=repsta,p=123456  --execute
fi

相關推薦

MySQL主從複製狀態監控指令碼

一. 主從複製存活狀態監控指令碼 [[email protected] scripts]# mysql-master-slave-status.sh #!/bin/bash po

MySQL主從複製郵件報警指令碼

#!/bin/shexport PATH=$PATH:/application/mysql/3306/binlogFile=`date +"%Y-%m-%d %H:%M:%S"`_check_mysql_slave.logmysql='/application/mysql/3306/bin/mysql -ur

監控mysql主從同步狀態是否異常,如果異常,則發生短信或郵寄給管理員

監控mysql主從同步狀態是否異常階段1:開發一個守護進程腳本每30秒實現檢測一次。階段2:如果同步出現如下錯誤號(1158,1159,1008,1007,1062),請跳過錯誤階段3:請使用數組技術實現上述腳本(獲取主從判斷及錯誤號部分)[[email protected]/* */ ~]# m

監控mysql主從同步狀態

inf http use 監控mysql 編寫 運行時 xxxxx 操作 ast 在高並發網站架構中,MySQL數據庫主從同步是不可或缺的,不過經常會發生由於網絡原因或者操作錯誤,MySQL主從經常會出現不同步的情況,那麽如何監控MySQL主從同步,也變成網站正常運行的重要

監控docker容器內mysql主從同步狀態

使用 bin con -i ner 獲取 face ont stdin Docker exec 命令docker exec :在運行的容器中執行命令語法docker exec [OPTIONS] CONTAINER COMMAND [ARG...]OPTIONS說明:-d

pt-heartbeat監控mysql主從複製

對於MySQL資料庫主從複製延遲的監控,可以藉助percona的有力武器pt-heartbeat來實現。 pt-heartbeat的工作原理通過使用時間戳方式在主庫上更新特定表,然後在從庫上讀取被更新的時間戳然後與本地系統時間對比來得出其延遲。具體流程: 1)在

pt-heartbeat監控mysql主從複製延遲整理

對於MySQL資料庫主從複製延遲的監控,可以藉助percona的有力武器pt-heartbeat來實現。 pt-heartbeat的工作原理通過使用時間戳方式在主庫上更新特定表,然後在從庫上讀取被更新的時間戳然後與本地系統時間對比來得出其延遲。具體流程:    1)在主

Mysql主從複製從庫狀態雙Yes及seconds_behind_master為0的故障分析

在監控Mysql主從叢集的時候,通常會使用以下三個引數 Slave_IO_Running: Yes Slave_SQL_Running: Yes Seconds_Behind_Master: 0 實際上,這種方式是有問題的。下面轉載的兩篇文章有詳細的描述。 簡單來說:如

mysql複製延遲監控指令碼

針對mysql一主多從時候,大資料情況下可能會遇到主從複製延遲問題,壓測mysql時,需要進行復制延遲進行監控,Lepus可以對複製延遲方面資訊進行監控,若專案緊急沒時間部署Lepus情況下,可直接監控mysql複製延遲問題: 監控mysql複製狀態及延遲問題,主要監控命令

MySQL主從複製(Replication for Backup)

環境:MySQL5.7,VMware-Workstation-12-Pro,Windows-10,CentOS-7.5,Xshell5 1. 基本概念和操作思路 主從複製能做什麼 資料庫的主從複製,是一臺主資料庫機器(Master)把自己的資料,複製到一臺或多臺從機器(Slaves)上。主從機器的通訊方

MYSQL主從複製+讀寫分離

案例 搭建MYSQL主從複製 這裡mysql伺服器都裝好了的 yum -y install ntp #裝ntp時間同步 vim /etc/ntp.conf #配置檔案 server 127.127.1.0 fudge 127.127.1.0 strat

mysql主從複製讀寫分離之——proxysql應用

一、說明ProxySQL是一個開源的MySQL代理伺服器,這意味著它充當MySQL伺服器和訪問其資料庫的應用程式之間的中介。ProxySQL可以通過在多個數據庫伺服器池之間分配流量來提高效能,並且如果一個或多個數據庫伺服器發生故障,還可以通過自動故障切換到備用資料庫來提高可用性。 系統環境:master1:

MySQL主從複製,並行複製,半同步複製和組複製

主從複製 主從複製過程存在三個執行緒,Master端的I/O執行緒,Slave的I/O執行緒與SQL執行緒。Master端需要開啟binlog日誌,Slave端需要開啟relaylog。 1、Slave端的I/O讀取master.info檔案,獲取binlog檔名和位置點,然後向Mast

MySQL主從複製遇到的錯誤

記錄下配置主從資料庫中遇到的問題: 問題如下: ​​​​​​​show slave status \G 顯現錯誤如下 Error 'Can't drop database 'Springboot'; database doesn't exist' on query. Default dat

windows 下mysql主從複製

準備 1.主伺服器:172.28.92.175 2.從伺服器:172.16.8.94 3.待同步資料庫:share 主從複製 1.首先在兩臺機器上安裝mysql,可以參考我之前的文章 2.在主伺服器上的my.ini裡新增一下內容,重啟服務 replicate-do-db

MYSQL主從複製的簡單實現

系統環境:CENTOS7 MYSQL版本,status;第一行,mysql  Ver 14.14 Distrib 5.7.22, for linux-glibc2.12 (x86_64) using  EditLine wrapper 主庫:192.168.156.75

複習電商筆記-19-mysql主從複製接受和操作

  第五天:MySQL主從複製+Amoeba讀寫分離 思考: 序號 知識點 型別 難度係數 掌握程度  

MySQL 主從複製 主主複製(3)

一.主從複製 1.描述 mysql主從複製實現的原理就是binlog日誌,主節點負責資料庫寫操作,從節點負責讀操作,從節點上不需要使用事務,能夠大大提高資料庫的效能. 準備三臺節點: 192.168.100.193  master 192.168.100.194&nbs

44、mysql主從複製實戰

主從複製的配置 軟體版本 1.雙方的MySQL要一致 2.如果不一致:主的要低於從的 從哪兒開始複製: 1.都從0開始 2.主伺服器已經執行一段時間,並且存在不小的資料集:把主伺服器備份,然後在從伺服器恢復,從主伺服器上備份處的位置開始複製 配置過程: 主伺服器: 1.改s

45、mysql主從複製應用擴充套件

mysql主從複製應用擴充套件 1.主從伺服器的時間要同步(NTP) 建立一個時間伺服器 */5 * * * * /user/sbin/ntpdate ntpserver &> /dev/null 2.如何限制從伺服器只讀(配置在mysqld中) 在從伺服器上啟動read