MySQL 8.0 リファレンスマニュアル


18.4.1.1 グループプライマリメンバーの変更

このセクションでは、単一プライマリグループのどのメンバーがプライマリであるかを変更する方法について説明します。 グループモードの変更に使用される関数は、任意のメンバーで実行できます。

プライマリのメンバーの変更

group_replication_set_as_primary() UDF を使用して、どのメンバーが単一プライマリグループのプライマリであるかを変更します。 マルチプライマリグループのメンバーに対して発行された場合、この関数は無効です。 プライマリメンバーのみがグループに書き込むことができるため、そのメンバーで非同期チャネルが実行されている場合、非同期チャネルが停止するまで切替えは許可されません。

8.0.17 から MySQL Server バージョンを実行しているメンバーで UDF を発行し、すべてのメンバーが MySQL Server バージョン 8.0.17 以上を実行している場合、パッチバージョンに基づいて、グループ内の最下位の MySQL Server バージョンを実行している新規プライマリメンバーのみを指定できます。 この保護策は、グループが新しい機能との互換性を維持するために適用されます。 いずれかのメンバーが MySQL 8.0.13 と MySQL 8.0.16 の間で MySQL Server バージョンを実行している場合、この保護策はグループに適用されず、新しいプライマリメンバーを指定できますが、グループ内で最も低い MySQL Server バージョンを実行しているプライマリを選択することをお薦めします。

次のコマンドを発行して、グループの新しいプライマリにするメンバーの server_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 |
+----------------------------------------------------------------------------------+----------------+----------------+

関連キーワード:  グループ, メンバー, リカバリ, 分散, バージョン, 変更, 実行, group, 構成, オンライン