1. 程式人生 > 資料庫 >mysql MGR 單主多主模式切換知識點詳解

mysql MGR 單主多主模式切換知識點詳解

主庫執行

CREATE DATABASE test CHARACTER SET utf8 COLLATE utf8_general_ci;
use test;
create table if not exists h1 (id int(10) PRIMARY KEY AUTO_INCREMENT,name varchar(50) NOT NULL);
insert into test.h1 values(1,"wang"),(2,"guo"),(3,"yang"),(4,"he");
select * from test.h1;

從庫測試

delete from test.h1 where id>3;
ERROR 1290 (HY000): The MySQL server is running with the --super-read-only option so it cannot execute this statement

1、單主切換到多主模式

1.1、停止組複製(在所有MGR節點上執行):

stop group_replication;
set global group_replication_single_primary_mode=OFF;
set global group_replication_enforce_update_everywhere_checks=ON;

1.2、隨便某個mgr節點執行:186

SET GLOBAL group_replication_bootstrap_group=ON;
START GROUP_REPLICATION;
SET GLOBAL group_replication_bootstrap_group=OFF;

1.3、然後在其它mgr節點執行:194 195

START GROUP_REPLICATION;

1.4、檢視mgr組資訊(任意MGR節點檢視)

SELECT * FROM performance_schema.replication_group_members;

可以看到所有MGR節點狀態都是online,角色都是PRIMARY,MGR多主模式搭建成功。

驗證下MGR多主模式的節點資料同步:

在MGR-node1節點更新資料:

在MGR-node2節點更新資料

在MGR-node3節點更新資料

MGR多主模式下,所有節點都可以進行讀寫操作.

2、切回單主模式

2.1、停止組複製(在所有MGR節點上執行):

stop group_replication;
set global group_replication_enforce_update_everywhere_checks=OFF;
set global group_replication_single_primary_mode=ON;

2.2、選擇一個節點作為主節點,在主節點上執行(186):

SET GLOBAL group_replication_bootstrap_group=ON;
START GROUP_REPLICATION;
SET GLOBAL group_replication_bootstrap_group=OFF;

2.3、在剩餘節點,也就是從庫節點上執行(194 195):

START GROUP_REPLICATION;

2.4、檢視MGR組資訊(任意MGR節點上都可檢視):

SELECT * FROM performance_schema.replication_group_members;

切回單主模式,主具有讀寫許可權,另外兩個從節點只讀不可寫.

設定MGR組叢集的白名單網段: 新增節點所在網段

stop group_replication;
set global group_replication_ip_whitelist="127.0.0.1/32,172.16.60.0/24,172.16.50.0/24,172.16.51.0/24";
start group_replication;
show variables like "group_replication_ip_whitelist";

知識點擴充

MySQL Group Replication(MGR)是MySQL官方在5.7.17版本引進的一個數據庫高可用與高擴充套件的解決方案,以外掛形式提供,實現了分散式下資料的最終一致性,總結MGR特點如下:

  • 高一致性:基於分散式paxos協議實現組複製,保證資料一致性;
  • 高容錯性:自動檢測機制,只要不是大多數節點都宕機就可以繼續工作,內建防腦裂保護機制;
  • 高擴充套件性:節點的增加與移除會自動更新組成員資訊,新節點加入後,自動從其他節點同步增量資料,直到與其他節點資料一致;
  • 高靈活性:提供單主模式和多主模式,單主模式在主庫宕機後能夠自動選主,所有寫入都在主節點進行,多主模式支援多節點寫入。

以上就是mysql MGR 單主多主模式切換知識點詳解的詳細內容,更多關於mysql MGR 單主多主模式切換的資料請關注我們其它相關文章!