このセクションでは、グループのメンバーをアップグレードするために必要なステップについて説明します。 このプロシージャは、セクション18.7.3.3「グループレプリケーションのオンラインアップグレード方法」 で説明されているメソッドの一部です。 グループのメンバーをアップグレードするプロセスは、すべての方法に共通であり、最初に説明します。 アップグレードしたメンバーを結合する方法は、フォローしている方法、およびグループがシングルプライマリモードで動作しているかマルチプライマリモードで動作しているかなどのその他の要因によって異なります。 インプレースまたはプロビジョニングのいずれかのアプローチを使用してサーバーインスタンスをアップグレードする方法は、ここで説明する方法には影響しません。
メンバーをアップグレードするプロセスは、メンバーをアップグレードしてからアップグレードしたメンバーをグループに再度参加させる選択した方法に従って、メンバーをグループから削除することです。 単一プライマリグループのメンバーのアップグレードの推奨順序は、すべてのセカンダリをアップグレードしてから、プライマリを最後にアップグレードすることです。 プライマリがセカンダリの前にアップグレードされた場合、古い MySQL バージョンを使用する新しいプライマリが選択されますが、このステップは必要ありません。
グループのメンバーをアップグレードするには:
クライアントをグループメンバーに接続し、
STOP GROUP_REPLICATION
を発行します。 続行する前に、replication_group_members
テーブルを監視して、メンバーステータスがOFFLINE
であることを確認します。-
グループレプリケーションが自動的に起動しないようにして、アップグレード後に安全にメンバーに接続し、
group_replication_start_on_boot=0
を設定してグループに再参加せずにメンバーを構成できるようにします。重要アップグレードされたメンバーに
group_replication_start_on_boot=1
がある場合、MySQL のアップグレード手順を実行する前にグループに再度参加すると、問題が発生する可能性があります。 たとえば、アップグレードが失敗し、サーバーが再起動した場合、破損している可能性のあるサーバーがグループに参加しようとする可能性があります。 たとえば、mysqladmin shutdown または
SHUTDOWN
ステートメントを使用してメンバーを停止します。 グループ内の他のメンバーは引き続き実行されます。インプレースまたはプロビジョニングのアプローチを使用して、メンバーをアップグレードします。 詳細は、セクション2.11「MySQL のアップグレード」 を参照してください。 アップグレードしたメンバーを再起動する場合、
group_replication_start_on_boot
が 0 に設定されているため、グループレプリケーションはインスタンスで開始されないため、グループに再参加しません。メンバーで MySQL のアップグレード手順が実行されたら、
group_replication_start_on_boot
を 1 に設定して、再起動後にグループレプリケーションが正しく開始されるようにする必要があります。 メンバーを再起動します。-
アップグレードしたメンバーに接続し、
START GROUP_REPLICATION
を発行します。 これにより、メンバーがグループに再結合されます。 グループレプリケーションメタデータはアップグレードされたサーバーに配置されているため、通常はグループレプリケーションを再構成する必要はありません。 サーバーは、サーバーがオフラインのときにグループによって処理されたトランザクションをキャッチアップする必要があります。 グループで捕捉されると、グループのオンラインメンバーになります。注記サーバーのアップグレードにかかる時間が長くなるほど、メンバーがオフラインになる時間が長くなるため、サーバーがグループに追加して戻されるまでにかかる時間が長くなります。
アップグレードされたメンバーが、以前の MySQL Server バージョンを実行しているメンバーを持つグループに参加すると、アップグレードされたメンバーは super_read_only=on
と結合されます。 これにより、すべてのメンバーが新しいバージョンを実行するまで、アップグレードされたメンバーへの書込みが行われなくなります。 マルチプライマリモードグループでは、アップグレードが正常に完了し、グループがトランザクションを処理する準備ができたら、書込み可能なプライマリとして意図されているメンバーを読取り/書込みモードに設定する必要があります。 MySQL 8.0.17 からは、グループのすべてのメンバーが同じリリースにアップグレードされると、読取り/書込みモードに自動的に戻ります。 以前のリリースでは、各メンバーを手動で読取り/書込みモードに設定する必要があります。 各メンバーに接続し、次を発行します:
SET GLOBAL super_read_only=OFF;