MySQL 8.0 MGR(組複製)高可用VIP切換腳本
簡介:MGR(組複製)官方推薦用MySQL router中間件去做MGR高可用故障轉移,但其多過了一層網絡,性能會下降,並且需要額外維護一套中間件,運維成本過高,於是寫了一個類似MHA的master_ip_failover腳本,實現VIP切換。
1)腳本會自動設置當前Primary和備選Primary參數group_replication_member_weight值爲100(權重100,默認爲50的Secondary不進行vip切換)
2) 腳本會自動設置當前Primary和備選Primary參數group_replication_consistency值爲BEFORE_ON_PRIMARY_FAILOVER(意思爲當Primary掛了的時候,備選Primary只有把事務全部執行完畢,才提供客戶端讀寫操作)
3)最好生產關閉限流模式set global group_replication_flow_control_mode = 'DISABLED',以防止高併發期間自動觸發限流,造成主庫不可寫,引起生產事故。
* 環境準備:
* shell> yum install -y php-process php php-mysql
* 開通監控管理機和MGR SSH互信
MGR(組複製)高可用VIP切換腳本
運行條件:
Modified by: hcymysql 2019/07/24
1、MySQL 8.0版本
2、single-primary mode(單主模式)
3、Native Password Authentication(5.5/5.6/5.7傳統用戶認證模式)
例:
CREATE USER 'hechunyang'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
GRANT ALL ON . TO 'hechunyang'@'%' WITH GRANT OPTION;
Usage:
Options:
-I interval time seconds 設置守護進程下間隔監測時間
--daemon 1 開啓後臺守護進程,0關閉後臺守護進程
--conf 指定配置文件
--help 幫助
Example :
前臺運行
shell> php mgr_master_ip_failover.php --conf=mgr_configure1.php
後臺運行
shell> nohup /usr/bin/php mgr_master_ip_failover.php --conf=mgr_configure1.php -I 5 --daemon 1 > /dev/null 2>&1 &
關閉後臺運行
shell> php mgr_master_ip_failover.php --conf=mgr_configure1.php --daemon 0
mgr_configure1.php爲配置文件,你可以配置多個監控配置文件,監控多套MGR環境。