さらに完全な例のシナリオでは、2 つのレプリケーション チャネルを使用することで冗長性を提供することによって、1 つのレプリケーション チャネルで考えられる問題を回避できるものと考えています。これには合計 4 台のレプリケーション サーバーが必要で、2 台のマスタ サーバーをマスタ クラスタに、後の 2 台のスレーブ サーバーをスレーブ クラスタに使用します。これからの説明のために、一意の識別子を以下のように割り当てたものとします。
サーバー ID | 説明 |
1 | マスタ - プライマリ レプリケーション チャネル (M) |
2 | マスタ - 二次レプリケーション チャネル (M') |
3 | スレーブ - プライマリ レプリケーション チャネル (S) |
4 | スレーブ - 二次レプリケーション チャネル (S') |
2 つのチャネルでの設定は 1
つのチャネルのレプリケーション
チャネルの設定とそれ程大きく異なりません。最初にプライマリと二次レプリケーション
マスタの mysqld
プロセスは、プライマリおよび二次スレーブの実行に続いて実行します。次に、各スレーブで
START SLAVE
ステートメントを発行シテレプリケーションを始めます。コマンドおよびその発行順序を以下に示します。
プライマリのレプリケーション マスタを起動します。
shellM
>mysqld --ndbcluster --server-id=1 \
--log-bin --binlog-format=row &
二次レプリケーション マスタを起動します。
shellM'
>mysqld --ndbcluster --server-id=2 \
--log-bin --binlog-format=row &
プライマリのレプリケーション スレーブ サーバーを起動します。
shellS
>mysqld --ndbcluster --server-id=3 \
--skip-slave-start &
二次レプリケーション スレーブを起動します。
shellS'
>mysqld --ndbcluster --server-id=4 \
--skip-slave-start &
最後に、以下に示すようにプライマリ
スレーブの START SLAVE
ステートメントを実行してプライマリ
チャネルでレプリケーションを開始します。
mysqlS
>START SLAVE;
前述同様、バイナリのロギングをレプリケーション スレーブで有効にする必要はありません。