MySQL 8.0はしばらくの間利用可能であり、Percona XtraDBCluster8.0もしばらくの間利用可能です。また、MySQL 5.6はその寿命に近づいており、PXC5.6を使用している人々もすぐに新しいバージョンに移行したいと思うでしょう。プロセスを見て、その周りのヒントを共有しましょう。
最初に、GaleraはMySQLで動作する単なるプラグインであることに注意する必要があります。そのため、で使用されている特定のMySQLバージョンの移行ルールとプロセスに準拠していることを確認する必要があります。 PXC。 PXC 5.7を実行していて、PXC 8.0にアップグレードする場合は、最初にMySQLアップグレードチェックリストのすべてのチェックボックスをオンにする必要があります。 MySQL5.7とMySQL8.0の間のアップグレードプロセスについて説明しているブログでその一部を取り上げました。また、MySQLでサポートされているアップグレードパスのみが実行可能であることも意味します。たとえば、5.6から8.0へのMySQLの直接アップグレードはサポートされていないため、PXC5.6をPXC8.0に直接アップグレードすることはできません。
いつものように、アップグレードを計画するときはいつでも、ベンダーが作成したドキュメントに精通している必要があります。 Perconaには、アップグレードプロセスとその周辺の警告を説明するための専用のWebページがあります。このブログ投稿では、これらのポイントのいくつかについて説明します。
デフォルトの構成設定には、アップグレードプロセスで問題を引き起こす可能性のあるいくつかの変更があります。pxc_strict_modeはデフォルトでENFORCINGに設定されています。このモードは、実験的な構成をブロックし、クラスターの安定性に影響を与える可能性があります。チェックは、とりわけ、使用されたストレージエンジン、バイナリログ形式、主キーの存在などをカバーします。アップグレードするときは、エラーログの非互換性を追跡するためにPERMISSIVEに設定することをお勧めしますが、それ以外の場合は、一部が最適な状態でない場合でもPXCを実行します。
別の設定pxc_encrypt_cluster_trafficもデフォルトで有効になっており、ノード間のGalera通信の暗号化が強制されます。同じクラスター内でノードを暗号化されたノードと暗号化されていないノードと混在させることはできないため、すべてのノードでノードを設定するか、新しいPXC8.0ノードでpxc_encrypt_cluster_trafficを無効にする必要があります。
MySQL 8.0への移行に関するブログ投稿でこれについて言及しましたが、この変更は非常に重要なので、ここでも繰り返します。MySQL8.0では、デフォルトの認証プラグインがcaching_sha2_passwordに変更されます。古いアプリケーションの一部をMySQL8.0と互換性のないものにします。もちろん、この設定を変更することはできますが、考慮しないと、アップグレードの完了後に逆効果になる可能性があります。
初心者の方は、お勧めしませんが、一部のノードではPXC5.7ノードとPXC8.0ノードの両方を同じクラスターで実行できる場合があることに注意してください。これにより、インプレースのライブアップグレードを行う機会が開かれます。プロセスは非常に簡単です。PXC5.7ノードを停止し、新しいバージョンをインストールして起動することにより、PXC8.0にアップグレードします。プロセスでは、データディレクトリが新しいバージョンにアップグレードされ、新しいPXC8.0ノードが正しく起動してクラスタに参加できるようになります。次に、ノードを1つずつ処理し、それらをPXC5.7からPXC8.0に移行します。 PXC 8.0ノードのデータディレクトリは5.7では使用できないため、SSTは避ける必要があることに注意してください。逆の方法でも問題なく動作するはずです。 SSTが発生しないようにするには、gcacheのサイズが書き込みに対応し、ISTが発生するのに十分な大きさであることを確認してください。 IST自体は問題なく動作します。
空きノードが多い場合は、並行して実行され、非同期レプリケーションを介して接続された、異なるメジャーバージョンの2つのクラスターでいつでもアップグレードを実行できます。重要なのは、このようなアプローチにより、PXC 8.0をしばらくの間(基本的には必要な限り)稼働させ、このクラスターでアプリケーションをテストできるため、PXC8.0をより徹底的にテストできるようになります。エラーやパフォーマンスの問題がある場合は、読み取り専用ワークロードの一部をPXC 8.0に移動して、クエリの処理方法を確認できます。
ClusterControlを使用する場合、これは「スレーブクラスターの作成」ジョブを使用して実行できます。
初期データの取得元を決定するように求められます、マスターPXCノードまたはバックアップから。
SSHユーザーやキーパスなどの接続の詳細も渡す必要があります。
次に、ベンダーとバージョンを選択するように求められます。今のところPXC5.7を使用するには、後でノードをアップグレードし、アップグレードプロセス自体をテストします。
最後に、ClusterControlのノードホスト名またはIPアドレスをに渡す必要があります接続してノードの設定を開始します。
その結果、2番目のPerconaXtraDBクラスターがバージョン5.7で実行されます。 、元のクラスターから複製します。そのクラスターは新しいバージョンにアップグレードでき、最終的にはトラフィックをそのクラスターに切り替えることができます。このプロセスについては、以前のブログ投稿で詳しく説明しました。
この短いブログ投稿が、PerconaXtraDBクラスターをバージョン8.0にアップグレードするためのより良い準備に役立つことを願っています。