MySQL 8.0.16 から使用可能な group_replication_autorejoin_tries
システム変数を使用すると、大多数のメンバーが削除されるか、アクセスできないタイムアウトに達した場合に、グループへの再参加が自動的に試行されます。 MySQL 8.0.20 までは、システム変数の値はデフォルトで 0 になるため、自動再結合はデフォルトではアクティブ化されません。 MySQL 8.0.21 からは、システム変数の値はデフォルトで 3 に設定されます。これは、メンバーがグループへの再参加を自動的に 3 回試行することを意味し、それぞれの間隔は 5 分です。
自動再結合がアクティブ化されていない場合、メンバーは通信を再開するとすぐに式を受け入れ、group_replication_exit_state_action
システム変数で指定されたアクションに進みます。 この後、メンバーをグループに戻すには手動操作が必要です。 自動再結合機能の使用は、失効した読取りの可能性を許容でき、特に一時的なネットワークの問題によってメンバーが説明されることがかなり多い場合に、手動操作の必要性を最小限に抑える場合に適しています。
自動再結合では、メンバー削除または到達不能な大部分のタイムアウトに達すると、(現在のプラグインオプション値を使用して) 再結合が試行され、指定された試行回数までさらに自動再結合が試行されます。 自動再結合の試行に失敗すると、メンバーは次の試行の 5 分前に待機します。 自動再結合の試行とその間の時間は、自動再結合プロシージャと呼ばれます。 指定された試行回数がメンバーの再参加または停止なしで使い果たされた場合、メンバーは group_replication_exit_state_action
システム変数で指定されたアクションに進みます。
自動再結合の試行の間、メンバーはスーパー読取り専用モードのままで、レプリケーショングループのビューに ERROR
の状態が表示されます。 この間、メンバーは書込みを受け入れません。 ただし、時間の経過とともに失効した読取りの可能性を高くすることで、メンバーに対して読取りを実行できます。 自動再結合プロシージャ中にメンバーをオフラインにするために介入する場合は、STOP GROUP_REPLICATION
ステートメントを使用するか、サーバーを停止することで、いつでも手動でメンバーを停止できます。 一定期間失効した読取りの可能性を許容できない場合は、group_replication_autorejoin_tries
システム変数を 0 に設定します。
パフォーマンススキーマを使用して自動再結合手順をモニターできます。 自動再結合プロシージャが実行されている間、「パフォーマンススキーマ」テーブル events_stages_current
にはイベント「「進行中の自動再結合プロシージャ」」が表示され、プロシージャのこのインスタンス (WORK_COMPLETED
フィールド内) でこれまでに試行された再試行回数が示されます。 events_stages_summary_global_by_event_name
テーブルには、(COUNT_STAR
フィールドの) サーバーインスタンスが自動再結合プロシージャを開始した回数が表示されます。 events_stages_history_long
テーブルには、これらの各自動再結合プロシージャが完了した時間 (TIMER_END
フィールド内) が表示されます。