MYSQL8.4 MGR

来源:这里教程网 时间:2026-03-01 18:35:10 作者:

1.MGR工作原理拓扑图 2.数据流 3.参数

#常规参数
server_id=853306/863306/873306
bind-address=0.0.0.0
skip_name_resolve = ON
innodb_flush_log_at_trx_commit =1
#binlog参数
log_bin=/mysql/log/3306/binlog/fgedudb-binlog
binlog_rows_query_log_events=on
binlog_gtid_simple_recovery=1
binlog_row_metadata=full
binlog_expire_logs_seconds=604800
log_bin_trust_function_creators = 1
sync_binlog = 1
relay-log=/mysql/log/3306/relaylog/fgedudb-relaylog
########group replication settings########
report-host=fgedu85/86/87
report_port=3306
binlog_checksum=none
gtid_mode = ON
enforce_gtid_consistency = 1
binlog_gtid_simple_recovery=1
#MGR参数
#plugin_dir=/mysql/app/mysql/lib/plugin/
disabled_storage_engines="MyISAM,BLACKHOLE,FEDERATED,ARCHIVE,MEMORY"
loose-plugin_load_add = 'mysql_clone.so'
loose-plugin_load_add = 'group_replication.so'
loose-group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaa1"
loose-group_replication_local_address= "192.168.18.85:33006"
#loose-group_replication_local_address= "192.168.18.86:33006"
#loose-group_replication_local_address= "192.168.18.87:33006"
loose-group_replication_group_seeds= "192.168.18.85:33006,192.168.18.86:33006,192.168.18.87:33006"
loose-group_replication_start_on_boot=off
loose-group_replication_bootstrap_group= off
loose-group_replication_member_weight=50
loose-group_replication_exit_state_action = READ_ONLY
loose-group_replication_flow_control_mode = "DISABLED"
loose-group_replication_single_primary_mode = ON
loose-group_replication_autorejoin_tries = 288
loose-group_replication_member_expel_timeout = 5
loose-group_replication_unreachable_majority_timeout = 30
loose-group_replication_communication_max_message_size = 10M
group_replication_recovery_get_public_key=on

4.配置MGR

#确认uuid
mysql -uroot -prootroot -h192.168.18.85 -P3306 -e "select @@hostname,@@server_id,@@server_uuid"
mysql -uroot -prootroot -h192.168.18.86 -P3306 -e "select @@hostname,@@server_id,@@server_uuid"
mysql -uroot -prootroot -h192.168.18.87 -P3306 -e "select @@hostname,@@server_id,@@server_uuid"
#创建复制用户85,86,87
set sql_log_bin=0;
create user repuser@'%' identified by 'repuser123';
grant replication slave,replication client,connection_admin,backup_admin,group_replication_stream on *.* to repuser@'%';
create user repuser@'127.0.0.1' identified by 'repuser123';
grant replication slave,replication client,connection_admin,backup_admin,group_replication_stream on *.* to repuser@'127.0.0.1';
create user repuser@'localhost' identified by 'repuser123';
grant replication slave,replication client,connection_admin,backup_admin,group_replication_stream on *.* to repuser@'localhost';
flush privileges;
set sql_log_bin=1;
select user,host from mysql.user;
#配置复制 85
change replication source to
    source_user='repuser',
    source_password='repuser123'
    for channel 'group_replication_recovery';
#建立group 85
set global group_replication_bootstrap_group=on;
start group_replication;
set global group_replication_bootstrap_group=off;
SELECT * FROM performance_schema.replication_group_members;
#创建数据
CREATE USER 'fgedu'@'%' IDENTIFIED BY 'fgedu123';
GRANT ALL PRIVILEGES ON itpuxdb.* TO 'fgedu'@'%' WITH GRANT OPTION;
use itpuxdb
create table fgedu01(
    id  int  auto_increment primary key,
    name       varchar(15) 
) engine = InnoDB;
INSERT INTO fgedu01 VALUES (1,'fgedu02');
INSERT INTO fgedu01 VALUES (2,'fgedu02');
INSERT INTO fgedu01 VALUES (3,'fgedu03');
INSERT INTO fgedu01 VALUES (4,'fgedu04');
INSERT INTO fgedu01 VALUES (5,'fgedu05');
commit;
select * from itpuxdb.fgedu01;
#同样的方式配置86,87
change replication source to
    source_user='repuser',
    source_password='repuser123'
    for channel 'group_replication_recovery';
start group_replication;
SELECT * FROM performance_schema.replication_group_members;

5.手工克隆

show global variables like '%gtid%';
stop group_replication; 
set global super_read_only=off;
set global clone_valid_donor_list='192.168.18.85:3306';
clone instance from 'root'@'192.168.18.85':3306 identified by 'rootroot';
start group_replication;  
set global super_read_only=on;

6.MGR集群启动停止

(1).正常情况下
#关闭MGR
先关闭从库,再关闭主库
#启动MGR
先启动主库
set global group_replication_bootstrap_group=on;
start group_replication;
set global group_replication_bootstrap_group=off;
SELECT * FROM performance_schema.replication_group_members;
SELECT * FROM performance_schema.replication_group_member_stats;
在启动从库
start group_replication;
select @@read_only,@@super_read_only;
(2).异常情况下
#主节点宕机
#从节点变成主节点
#原主节点重新加入集群
start group_replication;

7.添加新节点

#修改参数文件 安装插件
#创建用户
set sql_log_bin=0;
create user repuser@'%' identified by 'repuser123';
grant replication slave,replication client,connection_admin,backup_admin,group_replication_stream on *.* to repuser@'%';
create user repuser@'127.0.0.1' identified by 'repuser123';
grant replication slave,replication client,connection_admin,backup_admin,group_replication_stream on *.* to repuser@'127.0.0.1';
create user repuser@'localhost' identified by 'repuser123';
grant replication slave,replication client,connection_admin,backup_admin,group_replication_stream on *.* to repuser@'localhost';
flush privileges;
set sql_log_bin=1;
select user,host from mysql.user;
#从集群主库克隆
show global variables like '%gtid%';
set global super_read_only=off;
set global clone_valid_donor_list='192.168.18.86:3306';
clone instance from 'root'@'192.168.18.86':3306 identified by 'rootroot';
set global super_read_only=on;
#查看克隆
select stage,state,
cast(begin_time as DATETIME) as "START TIME",
cast(end_time as DATETIME) as "FINISH TIME",
lpad(sys.format_time(power(10,12) * (unix_timestamp(end_time) - unix_timestamp(begin_time))), 10, ' ') as DURATION,
lpad(concat(format(round(estimate/1024/1024,0), 0), "MB"), 16, ' ') as "Estimate",
case when begin_time is NULL then LPAD('%0', 7, ' ')
when estimate > 0 then
lpad(concat(round(data*100/estimate, 0), "%"), 7, ' ')
when end_time is NULL then lpad('0%', 7, ' ')
else lpad('100%', 7, ' ')
end as "Done(%)"
from performance_schema.clone_progress;
#配置MGR
change replication source to
    source_user='repuser',
    source_password='repuser123'
    for channel 'group_replication_recovery';
#加入集群
start group_replication;

8.删除节点

#停止集群
stop group_replication;
#修改参数

相关推荐