1. 程式人生 > >MGR單主模式搭建實踐(完結)

MGR單主模式搭建實踐(完結)

MGR單主模式搭建實踐(完結)

96 飛翔的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組內,可以發現主節點已經變更為之前的從節點

   

小禮物走一走,來簡書關注我