MySQL 8.0 MGR(組複製)高可用VIP切換腳本

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切換腳本

  • https://github.com/hcymysql/mgr_failover_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環境。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章