レプリケーション チャネルには 2 台の MySQL サーバーをレプリケーション サーバー (マスタおよびスレーブに各 1 台ずつ) が必要です。例えば、2 つのレプリケーション チャンネル (冗長性を確保するために予備のチャンネルを提供する) でレプリケーションの設定をする場合、それぞれのクラスタ各 2 つのレプリケーション ノードがあるため合計で 4 つのレプリケーション ノードになることを意味します。
この項で説明する MySQL Cluster
のレプリケーションおよびそれに続くものは行バースのレプリケーションに依存しています。このことはレプリケーションのマスタ
MySQL サーバーは
項14.10.6. 「レプリケーションの開始 (シングル レプリケーション
チャネル)」
の説明のように --binlog-format=row
を一緒に起動する必要がありあす。行ベースのレプリケーションの一般的な情報は、
項5.1.2. 「レプリケーション フォーマット」
を参照してください。
(MySQL Cluster をステートメントをベースとしたレプリケーションでレプリケートすることができます。しかし、この場合、以下の制限が適用されます。マスタとの役割を担うクラスタのデータ行のすべての更新は単一の MySQL サーバーに割り当てる必要があります。いくつかの MySQL レプリケーション プロセスを使用して同時にクラスタをレプリケートすることはできません。SQL レベルでの変更のみレプリケートされます。)
クラスタのいずれかのレプリケーションに使用さる
MySQL サーバーは、いずれかのクラスタ
に使用しているすべての MySQL レプリ
ケーションサーバー間で一意で認識される必要があります(同じ
ID
を共有するマスタおよびスレーブのクラスタの両方にレプリケーション
サーバーを持つことはできません)。これは各SQL
ノードを
--server-id=
オプションを使用して起動することで可能です。そこでは
id
id
は固有の整数です。必ずしも必要ではありませんが、こここでは説明のために、
すべての MySQL
のインストールは同じバーションであることを想定しています。
いずれの場合でも、レプリケーションに使用する両方の MySQL サーバーは使用するレプリケーション プロトコルおよびそれらがサポートする SQL 機能セットに於いてお互い互換性がある必要があります。この場合にこれを確認する最も簡素で容易な方法は同じ MySQL バージョンを使用するすべてのサーバーに使用することです。多くの場合マスタのバージョンより古いバージョンを使用した MySQL バージョンで動作するスレーブでレプリケートすることはできません— 詳細は 項5.4.2. 「MySQL バージョン間のレプリケーション互換性」 を参照してください。
スレーブ サーバーあるいはクラスタはマスタのレプリケーション専用であり、他のデータはそれに保存されないものと想定しています。