主從故障快速修復腳本

最近主從出現故障,作了數據恢復還原後,須要從新配置主從配置,因爲是多年前的配置,對裏面的結構又得從新熟悉下,並且中間多了一層docker,比較費時,手動切輸入切換多有不便,因而處理故障的同時,決定編寫以下腳本,以便備用,提高效率。若有須要可供參考。mysql

#!/bin/bash
#date: 2020.3.30
#author:jerry
##this shell repair ms make by jerry
##ver 2.0
##OA名稱 MySQL端口號 主從用戶名 主從用戶密碼
OA_name=$1
Port_no=$2
User=$3
Pwd=$4
##主從服務器IP地址
IP1=192.168.33.19
IP2=192.168.33.20
##獲取數據日誌文件及其位置
log_file=mysql -uu_name -ppwd_7788..remote -h$IP2 -P$Port_no -e "show master status;"|awk 'NR>1 {print $1}'
log_pos=mysql -uu_name -ppwd_7788..remote -h$IP2 -P$Port_no -e "show master status;"|awk 'NR>1 {print $2}'
##重置數據庫主從配置信息
sudo docker exec -i $OA_name mysql -uroot -ppwd_7788.. -e "stop slave;"
sudo docker exec -i $OA_name mysql -uroot -ppwd_7788.. -e "flush privileges;"
sudo docker exec -i $OA_name mysql -uroot -ppwd_7788.. -e "reset slave;"
sudo docker exec -i $OA_name mysql -uroot -ppwd_7788.. -e "flush privileges;"
##建立主從配置並開啓主從設置
sudo docker exec -i $OA_name mysql -uroot -ppwd_7788.. -e "change master to master_host='$IP2',master_port=$Port_no,master_user='$User',master_password='$Pwd',master_log_file='$log_file',master_log_pos=$log_pos;"
sudo docker exec -i $OA_name mysql -uroot -ppwd_7788.. -e "flush privileges;"
sudo docker exec -i $OA_name mysql -uroot -ppwd_7788.. -e "start slave;"
sudo docker exec -i $OA_name mysql -uroot -ppwd_7788.. -e "flush privileges;"
##主從狀態狀況檢測
mysql -u$User -p$Pwd -h$IP1 -P$Port_no -e "show slave status\G;"|grep "Running"sql

相關文章
相關標籤/搜索