mysql5.6主主叢集自動同步指令碼
在mysql主主叢集中有機器關機等情況導致同步失效,自己寫了一個shell指令碼,以方便自己以後維護:
指令碼內容如下:
#!/bin/bash
#設定主節點、從節點IP和mysql資料庫管理員使用者名稱密碼資訊 同步使用者名稱密碼資訊
_MASTERHOST=192.168.1.207
_SLAVEHOST=192.168.1.208
_USER=root
_MASTERPASD=root
_SLAVEPASD=root
_TBUSER=ab
_TBPASD=123
#配置從到主的同步
mysql -h $_MASTERHOST -uroot -p$_MASTERPASD -e "flush tables with read lock;"
master_log_file=`mysql -u root -h $_MASTERHOST -p$_MASTERPASD -e "show master status;" | awk 'NR==2 {print $1}'`
master_log_position=`mysql -u root -h $_MASTERHOST -p$_MASTERPASD -e "show master status;" | awk 'NR==2 {print $2}'`
mysql -h $_MASTERHOST -uroot -p$_MASTERPASD -e "unlock tables;"
mysql -h $_SLAVEHOST -uroot -p$_SLAVEPASD -e "stop slave;"
mysql -h $_SLAVEHOST -uroot -p$_SLAVEPASD -e "CHANGE MASTER TO MASTER_HOST='$_MASTERHOST',MASTER_PORT=3306,MASTER_USER='$_TBUSER',MASTER_PASSWORD='$_TBPASD',MASTER_LOG_FILE='$master_log_file',MASTER_LOG_POS=$master_log_position;"
mysql -h $_SLAVEHOST -uroot -p$_SLAVEPASD -e "start slave;"
#配置主到從的同步
mysql -h $_SLAVEHOST -uroot -p$_SLAVEPASD -e "flush tables with read lock;"
slave_log_file=`mysql -u root -h $_SLAVEHOST -p$_SLAVEPASD -e "show master status;" | awk 'NR==2 {print $1}'`
slave_log_position=`mysql -u root -h $_SLAVEHOST -p$_SLAVEPASD -e "show master status;" | awk 'NR==2 {print $2}'`
mysql -h $_SLAVEHOST -uroot -p$_SLAVEPASD -e "unlock tables;"
mysql -h $_MASTERHOST -uroot -p$_MASTERPASD -e "stop slave;"
mysql -h $_MASTERHOST -uroot -p$_MASTERPASD -e "CHANGE MASTER TO MASTER_HOST='$_SLAVEHOST',MASTER_PORT=3306,MASTER_USER='$_TBUSER',MASTER_PASSWORD='$_TBPASD',MASTER_LOG_FILE='$slave_log_file',MASTER_LOG_POS=$slave_log_position;"
mysql -h $_MASTERHOST -uroot -p$_MASTERPASD -e "start slave;"
#檢查
mysql -h $_MASTERHOST -uroot -p$_MASTERPASD -e "show slave status\G;" | awk '$0 ~/Host/ || $0 ~/State/ || $0 ~/Running/'
mysql -h $_SLAVEHOST -uroot -p$_SLAVEPASD -e "show slave status\G;" | awk '$0 ~/Host/ || $0 ~/State/ || $0 ~/Running/'
指令碼內容如下:
#!/bin/bash
#設定主節點、從節點IP和mysql資料庫管理員使用者名稱密碼資訊 同步使用者名稱密碼資訊
_MASTERHOST=192.168.1.207
_SLAVEHOST=192.168.1.208
_USER=root
_MASTERPASD=root
_SLAVEPASD=root
_TBUSER=ab
_TBPASD=123
#配置從到主的同步
mysql -h $_MASTERHOST -uroot -p$_MASTERPASD -e "flush tables with read lock;"
master_log_file=`mysql -u root -h $_MASTERHOST -p$_MASTERPASD -e "show master status;" | awk 'NR==2 {print $1}'`
master_log_position=`mysql -u root -h $_MASTERHOST -p$_MASTERPASD -e "show master status;" | awk 'NR==2 {print $2}'`
mysql -h $_MASTERHOST -uroot -p$_MASTERPASD -e "unlock tables;"
mysql -h $_SLAVEHOST -uroot -p$_SLAVEPASD -e "stop slave;"
mysql -h $_SLAVEHOST -uroot -p$_SLAVEPASD -e "CHANGE MASTER TO MASTER_HOST='$_MASTERHOST',MASTER_PORT=3306,MASTER_USER='$_TBUSER',MASTER_PASSWORD='$_TBPASD',MASTER_LOG_FILE='$master_log_file',MASTER_LOG_POS=$master_log_position;"
mysql -h $_SLAVEHOST -uroot -p$_SLAVEPASD -e "start slave;"
#配置主到從的同步
mysql -h $_SLAVEHOST -uroot -p$_SLAVEPASD -e "flush tables with read lock;"
slave_log_file=`mysql -u root -h $_SLAVEHOST -p$_SLAVEPASD -e "show master status;" | awk 'NR==2 {print $1}'`
slave_log_position=`mysql -u root -h $_SLAVEHOST -p$_SLAVEPASD -e "show master status;" | awk 'NR==2 {print $2}'`
mysql -h $_SLAVEHOST -uroot -p$_SLAVEPASD -e "unlock tables;"
mysql -h $_MASTERHOST -uroot -p$_MASTERPASD -e "stop slave;"
mysql -h $_MASTERHOST -uroot -p$_MASTERPASD -e "CHANGE MASTER TO MASTER_HOST='$_SLAVEHOST',MASTER_PORT=3306,MASTER_USER='$_TBUSER',MASTER_PASSWORD='$_TBPASD',MASTER_LOG_FILE='$slave_log_file',MASTER_LOG_POS=$slave_log_position;"
mysql -h $_MASTERHOST -uroot -p$_MASTERPASD -e "start slave;"
#檢查
mysql -h $_MASTERHOST -uroot -p$_MASTERPASD -e "show slave status\G;" | awk '$0 ~/Host/ || $0 ~/State/ || $0 ~/Running/'
mysql -h $_SLAVEHOST -uroot -p$_SLAVEPASD -e "show slave status\G;" | awk '$0 ~/Host/ || $0 ~/State/ || $0 ~/Running/'
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7490392/viewspace-2081388/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- keepalived與mysql主主叢集自動切換MySql
- Redis主從同步叢集搭建Redis主從同步
- nginx主主叢集Nginx
- 5.6 MySql主從自動切換指令碼MySql指令碼
- MySQL資料庫叢集自動安裝指令碼!MySql資料庫指令碼
- MySQL主從同步讀寫分離的叢集配置MySql主從同步
- MYSQL5.6主從+keepalive高可用自動切換MySql
- 解剖Nginx·自動指令碼篇(5)編譯器相關主指令碼Nginx指令碼編譯
- kafkaer:基於模板的 Kafka 主題/叢集/ACL 管理自動化Kafka
- MySQL叢集之 主從複製 主主複製 一主多從 多主一叢 實現方式MySql
- storm叢集啟動停止指令碼ORM指令碼
- 精讀Nginx·自動指令碼篇(5)編譯器相關主指令碼Nginx指令碼編譯
- 基於Dokcer搭建Redis叢集(主從叢集)Redis
- docker 配置 Mysql主從叢集DockerMySql
- 如何自動同步部落格到 Github 主頁?Github
- 自動化運維-修改主機名&hosts檔案指令碼運維指令碼
- mysql主主同步MySql
- Redis高可用-主從,哨兵,叢集Redis
- Redis叢集搭建 三主三從Redis
- Docker Swarms 跨主機叢集搭建DockerSwarm
- redis原理及叢集主從配置Redis
- MySQL叢集搭建(1)-主備搭建MySql
- RocketMQ雙主雙從叢集搭建MQ
- Redis叢集搭建(三主三從)Redis
- MySQL主主複製+Keepalived打造高可用MySQL叢集MySql
- mysql 5.7主主同步MySql
- MySQL 5.6主主同步MySql
- mysql主主複製+keepalived 打造高可用mysql叢集薦MySql
- Mysql主主同步-配置資料同步MySql
- Mysql5.6主從複製MySql
- repmgr 叢集雙主問題處理
- 基於 Docker 的 MongoDB 主從叢集DockerMongoDB
- Redis叢集的主從切換研究Redis
- Redis搭建主從複製、哨兵叢集Redis
- (八)Redis 主從複製、切片叢集Redis
- 主從庫與切片叢集機制
- mysql5.6主主複製及keepalived 高可用MySql
- Redis學習筆記七:主從叢集Redis筆記