windows下mysql8.0.23搭建MGR集群,单主多主模式

40 篇文章 0 订阅
15 篇文章 0 订阅

MGR 8.0.23设置
192.168.6.7、192.168.6.8、192.168.6.9
第一台 192.168.6.7
创建一个实例
启动第一台
my.ini参数为:
[mysqld]
basedir = d:/wamp/mysql
datadir = d:/wamp/data8
port = 3306
default_authentication_plugin=mysql_native_password
character_set_server = utf8mb4
collation-server = utf8mb4_unicode_ci
server_id = 7
gtid_mode=ON
enforce_gtid_consistency=ON
master_info_repository=TABLE
relay_log_info_repository=TABLE
log_bin=binlog
binlog_format=ROW
log_slave_updates=ON
binlog_checksum=NONE
transaction_write_set_extraction=XXHASH64
loose-group_replication_group_name=‘aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa’
loose-group_replication_start_on_boot=off
loose-group_replication_local_address= ‘192.168.6.7:33061’
loose-group_replication_group_seeds= ‘192.168.6.7:33061,192.168.6.8:33061,192.168.6.9:33061’
loose-group_replication_bootstrap_group=off
loose-group_replication_member_weight=50
#single primary模式
loose-group_replication_single_primary_mode=on
loose-group_replication_enforce_update_everywhere_checks=off
#multi primary模式
#loose-group_replication_single_primary_mode=off
#loose-group_replication_enforce_update_everywhere_checks=on
#white list
#loose-group_replication_ip_whitelist=‘127.0.0.1/8,192.168.6.0/24,192.168.0.0/16’

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
执行命令:
SET SQL_LOG_BIN=0;
CREATE USER copy@’%’ IDENTIFIED BY ‘123456’;
GRANT REPLICATION SLAVE ON . TO copy@’%’;
SET SQL_LOG_BIN=1;
CHANGE MASTER TO MASTER_USER=‘copy’, MASTER_PASSWORD=‘123456’ FOR CHANNEL ‘group_replication_recovery’;
FLUSH PRIVILEGES;
INSTALL PLUGIN group_replication SONAME ‘group_replication.dll’;
#master启动
SET GLOBAL group_replication_bootstrap_group=ON;
#所有的
START GROUP_REPLICATION;
SET GLOBAL group_replication_bootstrap_group=OFF;
SELECT * FROM performance_schema.replication_group_members;
第二台:
配置信息,my.cnf
server_id = 8
loose-group_replication_local_address= ‘192.168.6.8:33061’
loose-group_replication_group_seeds= ‘192.168.6.7:33061,192.168.6.8:33061,192.168.6.9:33061’

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
创建后,不要进行任何操作:
SET SQL_LOG_BIN=0;
CREATE USER copy@’%’ IDENTIFIED BY ‘123456’;
GRANT REPLICATION SLAVE ON . TO copy@’%’;
SET SQL_LOG_BIN=1;
CHANGE MASTER TO MASTER_USER=‘copy’, MASTER_PASSWORD=‘123456’ FOR CHANNEL ‘group_replication_recovery’;
FLUSH PRIVILEGES;
INSTALL PLUGIN group_replication SONAME ‘group_replication.dll’;
#所有的
START GROUP_REPLICATION;
SELECT * FROM performance_schema.replication_group_members;
第三台:
配置信息,my.cnf
server_id = 9

loose-group_replication_local_address= ‘192.168.6.9:33061’
loose-group_replication_group_seeds= ‘192.168.6.7:33061,192.168.6.8:33061,192.168.6.9:33061’

创建后,不要进行任何操作:
SET SQL_LOG_BIN=0;
CREATE USER copy@’%’ IDENTIFIED BY ‘123456’;
GRANT REPLICATION SLAVE ON . TO copy@’%’;
SET SQL_LOG_BIN=1;
CHANGE MASTER TO MASTER_USER=‘copy’, MASTER_PASSWORD=‘123456’ FOR CHANNEL ‘group_replication_recovery’;
FLUSH PRIVILEGES;
INSTALL PLUGIN group_replication SONAME ‘group_replication.dll’;
#所有的
START GROUP_REPLICATION;
SELECT * FROM performance_schema.replication_group_members;
即可创建成功MGR
错误处理:
1、如果提示:This member has more executed transactions than those present in the grou
在节点上执行
reset master;
再进行
START GROUP_REPLICATION;
2、拉起来节点只需要依次执行
stop group_replication
start group_replication
即可

3、Primary库与secondary库间数据不一致,复制数据时发生致命错误,备库离开replication 组
解决方法:
清空从节点的数据
从主库备份数据传至备库进行恢复
在备库执行reset master
重新执行
CHANGE MASTER TO MASTER_USER=‘copy’, MASTER_PASSWORD=‘123456’ FOR CHANNEL ‘group_replication_recovery’;
START GROUP_REPLICATION
4、
主库全备传到备库,备库恢复后,发现未给复制组用户授权,在主、备库上分别执行授权后发现 一旦执行事务,备库就退出group
原因:主备库单独执行了事务,写入了自己的binlog,导致不一致
解决方法:
发现不一致时执行关闭写入binlog命令,授权完毕后再开启。
SET SQL_LOG_BIN=0;
GRANT REPLICATION SLAVE ON . TO copy@’%’;
FLUSH PRIVILEGES;
SET SQL_LOG_BIN=1;
若已经不一致了,需在备库reset master再执行加入group的命令。
5、从机重新启动后,怎么处理
重启wampmysqld服务
在命令里面执行:
START GROUP_REPLICATION;
即可


切换MGR到多主模式:
主要再于此处:my.ini
#single primary模式
#loose-group_replication_single_primary_mode=on
#loose-group_replication_enforce_update_everywhere_checks=off
#multi primary模式
loose-group_replication_single_primary_mode=off
loose-group_replication_enforce_update_everywhere_checks=on
1、停止组复制(在所有MGR节点上执行):
stop group_replication;
set global group_replication_single_primary_mode=OFF;
set global group_replication_enforce_update_everywhere_checks=ON;
2、随便选择某个MGR节点执行 (比如这里选择在MGR-node1节点):
SET GLOBAL group_replication_bootstrap_group=ON;
START GROUP_REPLICATION;
SET GLOBAL group_replication_bootstrap_group=OFF;
3、然后在其他的MGR节点执行 (这里指MGR-node2和MGR-node3节点上执行):
START GROUP_REPLICATION;
4、查看MGR组信息 (在任意一个MGR节点上都可以查看)
SELECT * FROM performance_schema.replication_group_members;
_______________________________________切换回单主模式
主要在于此处:my.ini
#single primary模式
#loose-group_replication_single_primary_mode=on
#loose-group_replication_enforce_update_everywhere_checks=off
#multi primary模式
loose-group_replication_single_primary_mode=off
loose-group_replication_enforce_update_everywhere_checks=on
1、停止组复制(在所有MGR节点上执行):
set global group_replication_enforce_update_everywhere_checks=OFF;
set global group_replication_single_primary_mode=ON;
2、选择一个节点作为主节点, 在主节点上执行 (这里选择MGR-node1节点作为主节点)
SET GLOBAL group_replication_bootstrap_group=ON;
START GROUP_REPLICATION;
SET GLOBAL group_replication_bootstrap_group=OFF;
3、在其他剩余的节点, 也就是从库节点上执行 (这里从库节点指的就是MGR-node2和MGR-node3):
START GROUP_REPLICATION;
4、查看MGR组信息 (在任意一个MGR节点上都可以查看)
SELECT * FROM performance_schema.replication_group_members;

如果组掉了,用reset master;
然后
START GROUP_REPLICATION;
就和新的一样。

如果需要自动启动集群,改下配置就可以了:
loose-group_replication_start_on_boot=off
改为
loose-group_replication_start_on_boot=on

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lwprain

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值