天天看點

MySQL 5.7 MGR部署Group replication core parameterselect uuid();uuidgen

一、分布在三個節點配置hosts

vim /etc/hosts

172.17.16.2 mgr1

172.17.16.3 mgr2

172.17.16.4 mgr3

二、啟動MySQL資料庫

nohup /apps/svr/mysql57/bin/mysqld_safe --defaults-file=/apps/conf/mysql/mysql57_3306.cnf --user=apps &

三、3.登入MySQL

mysql -uroot -p

四、在每個節點建立複制賬号

grant replication slave on . to 'repl'@'172.17.16.%' identified by 'repl123';

五、安裝mgr插件,通過MySQL的插件加載指令加載Group Replication插件。

?install

install plugin group_replication SONAME 'group_replication.so';

show plugins;

六、配置參數(mysql57_3306.cnf)

1.啟用Binlog和Relaylog功能

需要設定以下以參數:

server_id=1

log_bin=binlog

log_slave_updates=on (MySQL5.6要打開GTID,一定要打開log_slave_updates=on,MySQL5.7沒這個限制)

relay_log=relay-log

read_only=off

2.開啟GTID功能

Group Replication要求必須使用GTID功能

gtid_mode=on

enforce_gtid_consistency=on

3.設定Row格式的Binlog

Group Replication隻支援Row格式的Binlog

binlog_format=ROW

4.禁用binlog_checksum(必須禁用,mysql8.0也不支援)

Group Replication目前(5.7.17) 還不支援帶checksum的Binlog Event.

binlog_checksum=NONE

5.使用系統表來存儲Slave的資訊

Group Replication要使用到多源複制的功能,多源複制要求必須将Slave通道(Channel)的狀态資訊存儲到系統表中

master_info_repository=TABLE

relay_log_info_repository=TBABLE

6.開并行複制

set global slave_pallel_type='LOGICAL_CLOCK';

set global slave_pallel_workers=2; #線程資料

set global slave_preserve_commit_order=ON;

7.MGR參數

vim mysql57_3306.cnf

Group replication core parameter

binlog_checksum=NONE

transaction_write_set_extraction=XXHASH64

loose-group_replication_group_name='fc4d7cf0-3f75-11eb-9824-000c29540116'

loose-group_replication_local_address='192.0.2.161:13066'

loose-group_replication_group_seeds='192.0.2.161:13066,192.0.2.163:13066,192.0.2.165:13066'

loose-group_replication_start_on_boot=off

loose-group_replication_bootstrap_group= off

loose-group_replication_enforce_update_everywhere_checks=true

loose-group_replication_single_primary_mode=off

loose-group_replication_ip_whitelist = '192.0.2.0/24'

select uuid();

uuidgen

7.啟動第一個節點,配置同步通道

reset master; #如果不重置,後面兩個節點啟動會報錯

change master to master_user='repl',master_password='repl123'

for channel 'group_replication_reovery';

8.第一個節點,組初始化

show vriables like '%boot%';

set global group_group_replication_bootstrap_group=on;

9.第一個節點,通過下面的指令啟用Group Replication插件。

start group_replication;

use performane_schema;

select * from replication_group_members;

10.第一個節點,關閉初始化

set global group_group_replication_bootstrap_group=off;

11.啟第二個節點,配置同步通道

reset master; #如果不重置,啟動會報錯

change master to master_user='repl',master_password='repl123'

for channel 'group_replication_reovery';

12.第二個節點,啟動組複制

set group_replication_allow_local_disjoint_gtids_join=on; #如果版本是5.7.17-5.7.21沒有開啟動會報錯。

select * from performane_schema.replication_group_members;

13.啟第三個節點,配置同步通道

reset master; #如果不重置,啟動會報錯

change master to master_user='repl',master_password='repl123'

for channel 'group_replication_reovery';

14.第三個節點,啟動組複制

15.測試

1)在第一個節點操作

create database yunbee;

use yunbee;

create table t1(id int auto_increment primary key,name varchar(10));

insert into t1(name) values('A'),('B'),('C');

select * from t1;

show variables like '%auto%';

2)在第二個節點操作

insert into t1(name) values('D');

2)在第三個節點操作

insert into t1(name) values('E');

繼續閱讀