Percona XtraDB Cluster (PXC) ではテーブル変更に注意する


Percona XtraDB Clusterとは

Percona社のオープンソースのデーターベースクラスタシステム。
MySQLをGalera Clusterでクラスタ化しており、全てのノードがmaster/masterの構成、すなわちマルチマスターとなり、どのノードもリードとライトが可能。

テーブル変更など、DDL実行に注意する

PXCはマルチマスターであるため、DDLの実行に注意が必要。
DDLの実行方法には、TOI (Total Order Isolation)とRSU (Rolling Schema Upgrade) がある。

TOIでは、全ノードでDDLが同時に実行されるが、DDLが完了するまではトランザクションが待ち状態になる。テーブルが巨大な場合、ALTER TABLEをサービス稼働中に実行しないほうが良い。

RSUでは、DDL実行中のノードがクラスタから分離されDDLを実行する。復帰した後に更新差分が適用されて、クラスタに復帰する。1ノードずつ更新することでサービス停止せずにDDLを実行できるが、DDLが反映されたカラムの削除や変更などは実行できない。

サービス停止せずに、削除や変更などを行いたいとき、pt-online-schema-changeを利用することも可能。ただしサーバーの負荷が高くなる。

参考