MGR(組復(fù)制)兩種運行模式
單主模式下,組復(fù)制具有自動選主功能,每次只有一個
server成員接受更新。單寫模式group內(nèi)只有一臺節(jié)點可寫可讀,其他節(jié)點只可以讀。對于group的部署,需要先跑起primary節(jié)點(即那個可寫可讀的節(jié)點,read_only=0)然后再跑起其他的節(jié)點,并把這些節(jié)點一一加進group。其他的節(jié)點就會自動同步primary節(jié)點上面的變化,然后將自己設(shè)置為只讀模式(read_only=1)。當(dāng)primary節(jié)點意外宕機或者下線,在滿足大多數(shù)節(jié)點存活的情況下,group內(nèi)部發(fā)起選舉,選出下一個可用的讀節(jié)點,提升為primary節(jié)點。primary選舉根據(jù)group內(nèi)剩下存活節(jié)點的UUID按字典序升序來選擇,即剩余存活的節(jié)點按UUID字典序排列,然后選擇排在最前的節(jié)點作為新的primary節(jié)點。
多主模式下, 所有的 server 成員都可以同時接受更新。group內(nèi)的所有機器都是primary節(jié)點,同時可以進行讀寫操作,并且數(shù)據(jù)是最終一致的。
相關(guān)參數(shù) : group_replication_single_primary_mode
是否啟動單主模式,如果啟動,則本實例是主庫,提供讀寫,其他實例僅提供讀
多主模式切換單主模式
# 所有節(jié)點執(zhí)行
mysql> stop group_replication;
mysql>set global group_replication_enforce_update_everywhere_checks=OFF;
mysql>set global group_replication_single_primary_mode=on;

# 主節(jié)點(172.16.2.185)執(zhí)行
set global group_replication_bootstrap_group=on;
start GROUP_REPLICATION;
set global group_replication_bootstrap_group=OFF;
# 從節(jié)點(3307、3308)執(zhí)行
start GROUP_REPLICATION;
# 查看MGR組信息
mysql> select * from performance_schema.replication_group_members;
單主切換到多主模式
MGR切換模式需要重新啟動組復(fù)制,因些需要在所有節(jié)點上先關(guān)閉組復(fù)制,設(shè)置 group_replication_single_primary_mode=OFF 等參數(shù),再啟動組復(fù)制。
# 停止組復(fù)制(所有節(jié)點執(zhí)行):
mysql>stop group_replication;
mysql>set global group_replication_single_primary_mode=OFF;
mysql>set global group_replication_enforce_update_everywhere_checks=ON;
# 隨便選擇某個節(jié)點執(zhí)行
mysql>SET GLOBAL? group_replication_bootstrap_group=ON;
mysql>START GROUP_REPLICATION;
mysql>SET GLOBAL? group_replication_bootstrap_group=OFF;
# 其他節(jié)點執(zhí)行
mysql>STARTGROUP_REPLICATION;
msyql 5.7
# 查看MGR組信息
SELECT * FROM performance_schema.replication_group_members;
查看讀寫權(quán)限
select @@read_only, @@super_read_only;
show variables like 'read_only';
mysql 8.0
# 查看MGR組信息
mysql>SELECT * FROM performance_schema.replication_group_members;
可以看到所有節(jié)點狀態(tài)都是online,角色都是PRIMARY(mysql 8.0),MGR多主模式搭建成功。
驗證:讀寫權(quán)限

寫入數(shù)據(jù)測試:
