jer*_*909 6 mysql replication tungsten-replicator
我正在尝试设置多主类型的复制,每个主都有一个使用 Tungsten 的附加从。例如,假设我有 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
Run Code Online (Sandbox Code Playgroud)
我已经浏览文档和教程几天了,似乎无法弄清楚最后一部分。我试图设置一个从 $MASTER1 到 $SLAVE1 的继电器,但由于没有很多关于设置继电器的文档(至少从我能找到的)我不知道我是否正确地做(或者如果我甚至应该首先这样做)。
小智 1
我没有类似设置的直接经验,但您可能需要在主服务上设置此选项:
--log-slave-updates Should slaves log updates to binlog [false]
Run Code Online (Sandbox Code Playgroud)
默认情况下,应用程序所做的更改不会写入二进制日志。当 Tungsten 监视 binlog 以检测更改时,主提取器将不会看到应用程序所做的这些更改,除非您指定上面的选项。