首页 > 数据库 > mysql组复制mysql group replication配置
2019
08-13

mysql组复制mysql group replication配置

mgr和proxysql更配哦

mysql组复制配置

配置文档见
https://github.com/bbotte/bbotte.com/tree/master/service/mysql-mgr

mysql group replication所需条件
1.只能为innodb引擎
2.所有表必须有主键
其他限制请看官方文档

my.cnf配置添加如下,下面为mgr单主模式

不同节点,group_replication_local_address、server_id 不同,需要更改

配置完成后,启动3个mysql实例,并在所有库执行

主库执行

2个备库执行

一般来说,现在3个mysql节点状态都为ONLINE

常用命令

mgr状态错误

1.加载group_replication.so出错

my.cnf配置中添加 plugin_load_add=’group_replication.so’

2.mysql在docker中启动组复制不能启动

https://bugs.mysql.com/bug.php?id=86772

用新版本mysql解决问题

3.由于allow_local_disjoint_gtids_join关闭状态MEMBER_STATE为RECOVERING

4.由于从库同步点问题MEMBER_STATE为RECOVERING

状态是RECOVERING

现在2个从库状态是RECOVERING,状态有问题,查日志

那么就跳过这个错误,查看主库已经执行的gtid,因为数据库是刚初始化的,所以gtid_purged为空,如果gtid_purged有值的话,就跳过gtid_purged的值。即确保数据一致的情况下开始主从同步
主库查看现在执行过的gtid值:

从库执行:

现在3个数据库状态都为ONLINE

5.由于hosts问题MEMBER_STATE为RECOVERING

如果是上面的报错,那么绑定hosts,把ip和主机名绑定,MEMBER_STATE的RECOVERING状态自然就变为ONLINE

6.由于主库没有创建同步账号irisrepluser导致不能同步数据

7.数据库没有reset master导致日志有错误提示,可忽略

8.如果有节点故障,需要恢复的话,先在主写入节点备份,故障节点导入

线上数据库在mgr的操作

mysql: 5.7.21

数据导入主节点,其他节点数据自动同步

线上数据库备份脚本如下:

默认全库备份导入时不生成二进制日志,要修改导入数据生成二进制日志

在写节点导入线上数据库备份

现在3个mysql节点MEMBER_STATE均为ONLINE

~~~~~~~~~~~

更改3台mysql配置文件

这样3个mysql节点其中一台重启,集群不受影响

参考
https://dev.mysql.com/doc/refman/5.7/en/group-replication.html

最后编辑:
作者:bbotte

留下一个回复

你的email不会被公开。