タングステンを使用して、各マスターが追加のスレーブを持つマルチマスタータイプのレプリケーションをセットアップしようとしています。例として、4つのホスト(A、B、C、D)があり、ホストAとCがマスターであり、BがAのスレーブであり、DがCのスレーブであるとします。
現在の構成では、データをAに追加します。これは、スレーブBと他のマスターCに問題なく複製されます。 Cにデータを追加すると、同じことが起こり、そのスレーブDが更新され、他のマスターAが更新されます。問題は、Aが更新されたときに、Dが変更を認識しないことです。 AがDを更新するのではなく、DがCからすべての更新を取得するようにします。これにより、BがAからすべての更新を取得するようになります。
これが私が取り組んできた設定スクリプトです。
MASTER1='master1-ca' #<-- 'A' from example
MASTER2='master2-va' #<-- 'C' from example
SLAVE1='slave1-ca' #<-- 'B' from example
SLAVE2='slave2-va' #<-- 'D' from example
./tools/tpm configure defaults \
--reset \
--replication-user=tungsten \
--replication-password=password \
--home-directory=/home/tungsten/PCS_DB \
--datasource-mysql-conf=/etc/mysql/my.cnf \
$( cat ./cookbook/security.options ) \
--start
./tools/tpm configure PCS_Multi \
--masters=$MASTER1,$MASTER2 \
--master-services=west,east \
$( cat ./cookbook/security.options ) \
--topology=all-masters
./tools/tpm configure west \
--hosts=$MASTER1,$SLAVE1 \
--slaves=$SLAVE1 \
$( cat ./cookbook/security.options ) \
--master=$MASTER1
./tools/tpm configure east \
--hosts=$MASTER2,$SLAVE2 \
--slaves=$SLAVE2 \
$( cat ./cookbook/security.options ) \
--master=$MASTER2
./tools/tpm install
私は数日間ドキュメントとチュートリアルを調べてきましたが、この最後の部分を理解できないようです。 $ MASTER1から$ SLAVE1にリレーをセットアップしようとしましたが、リレーのセットアップに関するドキュメントがあまりないため(少なくとも私が見つけたものから)、正しく実行しているかどうか(またはそもそもそうするべきです)。
私は同様の設定を直接経験したことはありませんが、おそらくマスターサービスでこのオプションを設定する必要があります。
--log-slave-updates Should slaves log updates to binlog [false]
デフォルトでは、アプライヤーによって行われた変更はbinlogに書き込まれません。 Tungstenはbinlogを監視して変更を検出するため、上記のオプションを指定しない限り、マスターエクストラクターはアプライヤーによって行われた変更を確認しません。