MySQL Group Replication(MGR) 选举新主节点
MySQL Group Replication(MGR)组复制支持单主模式和多主模式,本文简单介绍单主模式下,选举新主节点的不同方法。
- 在 8.0.2 版本之前,主节点选举是基于节点的 UUID 编号,在一次故障切换过程中,最小的 UUID 那个节点将被选举为新主节点。
- 从 8.0.2 版本开始,可以通过使用权重来选举新主节点,权重参数为 group_replication_member_weight,在当前主节点发生故障时,拥有高权重的备节点将被选举为新主节点。
- 从 8.0.12 版本开始,可以通过调用函数 group_replication_set_as_primary 来选举任一节点作为新的主节点,即使没有发生故障,也可以调用该函数来选举新的主节点。
1. 场景
有 3 个节点的 MGR 集群,版本为 Percona Server for MySQL 8.0.22,节点信息如下:
- 172.28.128.15
- 172.28.128.14
- 172.28.128.13
mysql> select member_host,member_state,member_role,member_version from performance_schema.replication_group_members;
+---------------+--------------+-------------+----------------+
| member_host | member_state | member_role | member_version |
+---------------+--------------+-------------+----------------+
| 172.28.128.15 | ONLINE | SECONDARY | 8.0.22 |
| 172.28.128.14 | ONLINE | PRIMARY | 8.0.22 |
| 172.28.128.13 | ONLINE | SECONDARY | 8.0.22 |
+---------------+--------------+-------------+----------------+
3 rows in set (0.03 sec)