钨从mysql slave复制到vertica - 似乎没有看看relay-log?

时间:2013-10-03 16:13:52

标签: mysql replication master-slave vertica tungsten-replicator

我正在使用mysql和vertica,并且有一个以混合binlog格式运行的主/从mysql对(默认设置)。

为了将某些分析任务复制到vertica数据库,我正在考虑使用钨。

主人忙于应用程序的读/写请求,而奴隶正在记录发生的事情,所以理想情况下我想在mysql slave上运行钨复制器,因为它只是读取。

Tungsten要求binlog采用基于行的格式,因此我在slave上启用了基于行的binlog,从而创建了binlog和relay-binlog文件。因此,从服务器从主服务器读取混合binlog,应用于其数据库并且还以行为基础格式保持relay-binlog中的更改。到目前为止一切都很好。

当我使用标准的-a --master-slave参数时,它似乎只是查看仅包含从站本地发生的事情的binlog,而不是relay-binlogs。

我发现的文档和帖子都指向在主服务器上运行钨,并且在不使用mysql主/从服务器的情况下使用它进行复制,而不是我想到的那种混合模式。

但是我宁愿保持什么工作,只需添加钨作为从mysql slave到vertica复制的桥梁。

我该如何配置?

如何告诉它我想从slave到vertica复制哪些表,而不是全部复制?

配置细节:

奴隶的 /etc/my.cnf:

datadir=/var/lib/mysql
log-bin=/var/log/mysql/mysql-bin.log
expire_logs_days=7

# for tungsten replicator we need row based binlogs on the slave
binlog-format=row
## Server timezone is GMT.
#default-time-zone='+00:00'
# Tables default to UTF8.
character-set-server=utf8
collation-server=utf8_general_ci

server-id=3

我用来演奏钨的剧本:

tungsten-replicator-2.1.2-30/tools/tungsten-installer --master-slave -a \
  --service-name=mysql2vertica \
  --master-host=testslave1 \
  --cluster-hosts=testslave1 \
  --datasource-user=tungsten \
  --datasource-password=supersecret \
  --home-directory=/opt/tungsten \
  --buffer-size=1000 \
  --java-file-encoding=UTF8 \
  --java-user-timezone=CDT \
  --mysql-use-bytes-for-string=false \
  --svc-extractor-filters=colnames,pkey \
  --property=replicator.filter.pkey.addPkeyToInserts=true \
  --property=replicator.filter.pkey.addColumnsToDeletes=true \
  --start-and-report

似乎开始很好,在线说,但只复制binlog中的内容,但不复制relay-binlog。

1 个答案:

答案 0 :(得分:1)

我们已成功在我们的MySQL奴隶上运行Tungsten,所以你想要做的事情肯定是可能的。

默认情况下,Tungsten所期望的奴隶does not copy incoming changes to the outgoing binlog。尝试添加:

log-slave-updates=TRUE

到你的my.cnf文件。