MySQL 8.0 MGR(組複製)高可用VIP切換腳本php
簡介:MGR(組複製)官方推薦用MySQL router中間件去作MGR高可用故障轉移,但其多過了一層網絡,性能會降低,而且須要額外維護一套中間件,運維成本太高,因而寫了一個相似MHA的master_ip_failover腳本,實現VIP切換。mysql
1)腳本會自動設置當前Primary和備選Primary參數group_replication_member_weight值爲100(權重100,默認爲50的Secondary不進行vip切換)git
2) 腳本會自動設置當前Primary和備選Primary參數group_replication_consistency值爲BEFORE_ON_PRIMARY_FAILOVER(意思爲當Primary掛了的時候,備選Primary只有把事務所有執行完畢,才提供客戶端讀寫操做)github
3)最好生產關閉限流模式set global group_replication_flow_control_mode = 'DISABLED',以防止高併發期間自動觸發限流,形成主庫不可寫,引發生產事故。
sql
* 環境準備:
* shell> yum install -y php-process php php-mysqlshell
* 開通監控管理機和MGR SSH互信(可用MHA的masterha_check_ssh腳本作檢測)網絡
MGR(組複製)高可用VIP切換腳本併發
運行條件:ssh
Modified by: hcymysql 2019/07/24
一、MySQL 8.0版本
二、single-primary mode(單主模式)
三、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環境。