プライマリスレーブ障害の迅速な修復スクリプト


最近主従は故障が発生して、データの回復と復元をした後に、主従の配置を再配置する必要があって、数年前の配置のため、中の構造に対してまた再び熟知しなければならなくて、その上中間は1層のdockerを多くして、比較的に時間がかかって、手動で入力して切り替えるのは多く不便で、故障を処理する同時に、以下のスクリプトを書くことを決定して、予備にして、効率を高めます.必要に応じて参考にしてください.
#!/bin/bash#date:2020.3.30#author:jerry#this shell repair ms make by jerry#ver 2.0#OA名前MySQLポート番号マスタユーザ名マスタユーザパスワードOA_name=$1Port_No=$2 User=$3 Pwd=$4##マスタスレーブサーバIPアドレスIP 1=192.168.33.19 IP 2=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;"##マスタースレーブ構成を作成し、マスタースレーブ設定sudodocker 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$IP 1-P$Port_no -e "show slave status\G;"|grep "Running"