# 18.5.1.1更换团队的主要成员

本节介绍如何更改单个主组中的哪个成员是主组。用于更改组模式的功能可以在任何成员上运行。

# 更改主要成员

使用组\复制\设置\为\主()函数更改单个主组中的主成员。如果对多主组的成员发出此函数,则该函数无效。

笔记

  1. 只有主要成员才能从外部源接收数据并将其写入组。如果除组复制通道外,现有主成员上正在运行标准源到副本复制通道,则只能在该复制通道停止后更改主成员。

  2. 如果组正在等待任何未提交的事务,则在提交、回滚或终止这些事务之前,操作无法完成。

    如果在运行8.0.17版本的MySQL服务器的成员上调用该函数,并且所有成员都运行8.0.17版本或更高版本的MySQL服务器,则只能根据补丁版本指定一个运行组中最低版本MySQL服务器的新主成员。该保障措施用于确保集团保持与新功能的兼容性。如果任何成员运行的MySQL服务器版本介于MySQL 8.0.13和MySQL 8.0.16之间,则不会对该组强制执行此保护,您可以指定任何新的主成员,但建议选择运行该组中最低MySQL服务器版本的主成员。

    通过考试服务器_uuid您希望通过以下方式成为组的新主要成员:

SELECT group_replication_set_as_primary(member_uuid);

当操作运行时,您可以通过发出以下命令来检查其进度:

SELECT event_name, work_completed, work_estimated FROM performance_schema.events_stages_current WHERE event_name LIKE "%stage/group_rpl%";
+----------------------------------------------------------------------------------+----------------+----------------+
| event_name                                                                       | work_completed | work_estimated |
+----------------------------------------------------------------------------------+----------------+----------------+
| stage/group_rpl/Primary Election: Waiting for members to turn on super_read_only |              3 |              5 |
+----------------------------------------------------------------------------------+----------------+----------------+