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)