このページは機械翻訳したものです。
このセクションでは、単一プライマリグループのどのメンバーがプライマリであるかを変更する方法について説明します。 グループモードの変更に使用される関数は、任意のメンバーで実行できます。
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 |
+----------------------------------------------------------------------------------+----------------+----------------+