スマートスタイル TECH BLOG

データベース&クラウド技術情報

Percona XtraDB Cluster 8.0 GAを調査

はじめに

Galeraベースのマルチマスタソリューションとして有名なPercona XtraDB Cluster(以下、PXC)ですが、2020/04/29に最新版である 8.0.18-9.3 がリリースされ、これがGA版となりました。

リリースノート

そこで、PXC8.0について少し調べてみました。

※ ちなみに 6/18 に最新の8.0.19-10もリリースされました

重要な変更

まずは、リファレンスマニュアルに記載された「PXC8.0における重要な変更」の内容を確認します。

1. デフォルトで通信が暗号化

通信の暗号化を有効にするpxc_encrypt_cluster_traffic変数が、PXC8.0ではデフォルトONになっています。

そのため、事前に各ノードでSSL関連の設定を適切に行っていないとPXC8.0クラスタにJOINすることができないので注意が必要です。

SSLの設定については、例えばmy.cnfに以下のようなパラメータを設定します。

2. PXC5.7ノードとPXC8.0ノードの混在は推奨されない

PXC5.7からPXC8.0にアップグレードする時は、クラスタ全体を一度停止して、全ノードを8.0にアップグレードしましょう、また、ダウングレードが難しいため、作業前に5.7のバックアップを取得しておくべきです。

3. PXC Strict Modeがデフォルトで有効

PXC8.0は、PXC Strict Modeがデフォルト有効になった状態で起動します。

この状態ですと、PXCでサポートされていない処理や操作を行ったときにエラーが発生します。その条件は、マニュアルを参照してください。

最初に第1ノードを起動する時には、my.cnfに「pxc_strict_mode=PERMISSIVE」を設定することを推奨します。そして、クラスタ全体が立ち上がったら必要に応じて設定を有効(pxc_strict_mode=ENFORCING)にしましょう。

※ このPXC Strict ModeはPXC5.7でも有効になっています

4. 設定ファイルのレイアウトが変更

設定ファイルのレイアウト(配置先)が以下のように変更になりました。

Path on Debian and Ubuntu: /etc/mysql/mysql.conf.d/mysqld.cnf
Path on Red Hat and CentOS: /etc/my.cnf

アップグレードを開始する前に、必要に応じて/etc/mysql/percona-xtradb-cluster.conf.d/wsrep.cnf(on Debian and Ubuntu)もしくは/etc/percona-xtradb-cluster.conf.d/wsrep.cnf(on Red Hat and CentOS)からファイルを移動してください。

5. caching_sha2_passwordがデフォルトの認証プラグインに

PXC8.0のデフォルト認証プラグインはcaching_sha2_passwordです。同プラグインが適用されたPXCユーザでは、ProxySQLの–syncusersオプションが動作しません。それを避ける場合は、mysql_native_passwordプラグインを使用してください。

ちなみにこの認証プラグインはMySQL8.0でも同様です。弊社の過去記事でも取り上げているので、ご参照ください。

6. mysql_upgradeがSSTの一部として実行される

バージョンアップ後にシステムテーブルを更新するコマンド mysql_upgrade がSSTの処理の一部として実行されるようになりました。そのため、アップグレード時にSSTを伴った場合は、手動で同コマンドを実行する必要はありません。

アップグレード手順

メジャーバージョンアップ(5.6 → 8.0)

残念ながら、PXC5.6 から PXC8.0 に直接アップグレードすることはできません。そのため、まずはPXC5.6をPXC5.7の最新バージョンにアップグレードする必要があります。

メジャーバージョンアップ(5.7 → 8.0)

前述した通り、PXC5.7からPXC8.0にバージョンアップする場合にはPXC5.7クラスタ全体、すなわち全ノードを一度停止することが推奨されます。
そのため、バージョンアップをする際にはmysqメンテナンス期間(ダウンタイム)を用意する必要があります。

以下では、標準的なyumリポジトリを使用した方法について説明します。
まずは、既存のPXC5.7ノードを全て停止します。

その後、最新のPerconaのyumリポジトリをインストールします。また、PXC8.0のリポジトリも有効にします。

PXC8.0パッケージをアップグレードします。

必要に応じて、my.cnfを修正します。特に「SSLの設定」、「pxc_strict_mode」、「認証プラグイン(default_authentication_plugin)」に注意してください。

準備ができたら、Node1から順次起動してきます。

全ノード起動したら、ステータスを確認しましょう。wsrep_cluster_sizeが “3”、wsrep_cluster_statusが “Primary” であれば正常にアップデートできています。

おわりに

以上、PXC8.0の概要部分について述べました。その他、PXC8.0では”Galera 4″が組み込まれているため、以前ブログ記事でも説明したGalera4のStreaming Replicationを使用することができます。

今後、少しずつ利用ケースも増えてくると思いますが、まだまだ未知の部分も多いので引き続き検証していきたいと思います。


Percona

 

Return Top