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

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

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

相關文章
相關標籤/搜索