私は mysql と vertica で遊んでおり、マスター/スレーブ mysql ペアが混合バイナリログ形式 (デフォルト設定) で実行されています。
いくつかの分析タスクのためにこれを vertica データベースに複製するために、私はタングステンを検討していました。
マスターはアプリからの読み取り/書き込み要求でビジーであり、スレーブは何が起こっているかを記録しているだけなので、理想的には mysql スレーブでタングステン レプリケーターを実行したいだけです。
Tungsten では、binlog が行ベースの形式である必要があるため、スレーブで行ベースの binlog を有効にすると、binlog ファイルと Relay-binlog ファイルが作成されます。したがって、スレーブはマスターから混合バイナリログを読み取り、そのデータベースに適用し、リレーバイナリログの変更を行ベースの形式で保持します。これまでのところすべて順調です。
標準の -a --master-slave 引数を使用すると、リレー ビンログではなく、スレーブでローカルに発生したことのみを含むビンログのみを見ているように見えます。
私が見つけたドキュメントと投稿はすべて、私が考えているハイブリッドモードではなく、マスターでタングステンを実行し、mysql マスター/スレーブを使用せずにレプリケーションに使用することを示しています。
ただし、機能を維持し、mysql スレーブから vertica に複製するブリッジとしてタングステンを追加することをお勧めします。
それをどのように構成しますか?
すべてをレプリケートするのではなく、スレーブから 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 はコピーしません。