MGR單主模式搭建實踐(完結)
MGR單主模式搭建實踐(完結)
飛翔的Tallgeese 2018.07.20 16:34* 字數 749 閱讀 786評論 0喜歡 1架構
主:172.17.100.101
從①:172.17.100.103
從②:172.17.100.104
MySQL版本:5.7.22
MGR配置
修改每個節點下對應的配置檔案my.cnf,增加如下配置
#MGR
server-id = 1 #主節點設定為1,從節點從2-9,此次實驗為1主2從
master_info_repository=TABLE
relay_log_info_repository=TABLE
binlog_checksum=NONE
transaction_write_set_extraction=XXHASH64
loose-group_replication_group_name="3db33b36-0e51-409f-a61d-c99756e90155" #這個name必須是一個uuid的格式
loose-group_replication_start_on_boot=off
loose-group_replication_local_address= "172.17.100.101:23306" #每個節點此處為本機的IP及埠
loose-group_replication_group_seeds= "172.17.100.101:23306,172.17.100.103:23306,172.17.100.104:23306" #MGR組的所有IP及埠
loose-group_replication_bootstrap_group= off
loose-group_replication_single_primary_mode=true #單主模式必須設定
loose-group_replication_enforce_update_everywhere_checks=false #單主模式必須設定
第一節點(主節點)
SET SQL_LOG_BIN=0;
grant replication slave on *.* to rpl@'172.17.100.%' identified by 'beacon';
SET SQL_LOG_BIN=1;
change master to master_user='rpl',master_password='beacon' for channel 'group_replication_recovery';
install plugin group_replication soname 'group_replication.so';
set global group_replication_bootstrap_group=on;
start group_replication;
set global group_replication_bootstrap_group=off;
第二節點
SET SQL_LOG_BIN=0;
grant replication slave on *.* to rpl@'172.17.100.%' identified by 'beacon';
SET SQL_LOG_BIN=1;
change master to master_user='rpl',master_password='beacon' for channel 'group_replication_recovery';
install plugin group_replication soname 'group_replication.so';
set global group_replication_allow_local_disjoint_gtids_join=ON;
start group_replication;
第三節點
SET SQL_LOG_BIN=0;
grant replication slave on *.* to rpl@'172.17.100.%' identified by 'beacon';
SET SQL_LOG_BIN=1;
change master to master_user='rpl',master_password='beacon' for channel 'group_replication_recovery';
install plugin group_replication soname 'group_replication.so';
set global group_replication_allow_local_disjoint_gtids_join=ON;
start group_replication;
MGR相關資訊檢測
#查詢組成員
select * from performance_schema.replication_group_members;
#查詢主節點
select variable_value from performance_schema.global_status where variable_name='group_replication_primary_member';
搭建中遇到的報錯
1.[ERROR] Plugin group_replication reported: '[GCS] Error on opening a connection to 172.17.100.103:23306 on local port: 23306.'
這個報錯是主節點執行start group_replication時發生的
重新執行set global group_replication_bootstrap_group=on;
之後再次start可以正常啟動
實際上之前我已經執行過set global group_replication_bootstrap_group=on這個語句了,為什麼會出現這個報錯,有點懵比,總之重新執行後解決該問題。
2.[ERROR] Plugin group_replication reported: 'This member has more executed transactions than those present in the group. Local transactions: ce088f8c-8e5b-11e8-9c42-005056ba04d1:1-2 > Group transactions: 3db33b36-0e51-409f-a61d-c99756e90155:1-2,
這個報錯是在第二節點執行start的時候產生的,根本原因是因為第二節點沒有執行join語句
執行set global group_replication_allow_local_disjoint_gtids_join=ON;
完成上述語句的執行之後,再次start,即可成功執行
3.主從庫皆可執行寫操作,下列語句執行後,結果為空
select variable_value from performance_schema.global_status where variable_name='group_replication_primary_member';
檢查引數中的下列2行是否配置正確
在配置相反的情況下,搭建的MGR為多主
MGR切換測試
主節點執行關閉資料庫
從節點執行相關檢測
重新啟動之前的主節點,並執行start GR,將主節點加入到MGR組內,可以發現主節點已經變更為之前的從節點
小禮物走一走,來簡書關注我