【MySQL高可用集群】MySQL的MGR搭建

本文详细介绍了如何在Ubuntu22.04环境中搭建MySQL8.0的GroupReplication集群,包括环境配置、my.cnf文件设置、集群启动与监控,以及注意事项和常见问题解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前情提要:

  MySQL官方在 5.7.17版本正式推出组复制(MySQL Group Replication,简称MGR),使用类似 zookeeper 的多于一半原则。在一个集群由 2N+1 个节点共同组成一个复制组,一个事务的提交,必须经过 N+1 (也就是集群节点数 / 2+ 1)个节点决议并通过后才可以提交。这是目前 MySQL 数据库高可用与高扩展的最优解决方案。MGR有以下几个限制条件:

1、存储引擎必须为Innodb,即仅支持InnoDB表

2、每张表必须有主键,用于做write set的冲突检测

3、不支持外键于save point特性,无法做全局间的约束检测与部分部分回滚

4、必须开启GTID特性,二进制日志格式必须设置为ROW,用于选主与write set

5、二进制日志binlog不支持Replication event checksums

6、多主模式(也就是多写模式) 下:不支持SERIALIZABLE事务隔离级别,不完全支持级联外键约束,不支持在不同节点上对同一个数据库对象并发执行DDL

8、只支持ipv4网络,最多支持9个节点

一、环境准备

Ubuntu 22.04 LTS (三台虚拟机),每台上面安装MySQL 8.0.33。

分别在每个节点配置 /etc/hosts 主机域名映射。

    IP          主机名
10.53.207.20  master1
10.53.207.21  slave1
10.53.207.22  slave2

关闭 ubuntu 防火墙或者设置三个节点进白名单。

二、MySQL配置文件设置

分别在三个节点进行配置,内容基本相同,只有server_id、report_host、group_replication_local_address 值不同。它们在三个接点的值分别设置如下:

10.53.207.20:server_id=20;report_host = 10.53.207.20,group_replication_local_address =  "10.53.207.20:33061"

10.53.207.21:server_id=21;report_host = 10.53.207.21;group_replication_local_address =  "10.53.207.21:33061"

10.53.207.22:server_id=22;report_host = 10.53.207.22;group_replication_local_address =  "10.53.207.22:33061"

属性 group_replication_bootstrap_group 配置是否引导组复制,如果某个节点设置此属性为ON,则先启动此节点创建一个组服务并成为 master 节点,接受其他后启动节点加入组复制集群。

如果属性 group_replication

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

架构师之路魂

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

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

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

打赏作者

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

抵扣说明:

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

余额充值