Репликация вольфрама от MySQL подчиненного к Vertica - кажется, не смотрит на relay-log?
Я играю с mysql и vertica и имею пару mysql master / slave, которая работает со смешанным форматом binlog (настройки по умолчанию).
Чтобы скопировать это в базу данных vertica для некоторых аналитических задач, я рассматривал вольфрам.
Хозяин занят запросами на чтение / запись из приложения, а ведомый просто записывает происходящее, поэтому в идеале я хочу запустить вольфрамовый репликатор на ведомом MySQL, так как он только читает.
Tungsten требует, чтобы binlog был в формате строки, поэтому я включил binlog на основе строки для ведомого, который создает файлы binlog и relay-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.
1 ответ
Мы успешно запускаем Tungsten на нашем ведомом MySQL, так что то, что вы хотите сделать, определенно возможно.
По умолчанию ведомое устройство не копирует входящие изменения в исходящий binlog, где их ожидает Tungsten. Попробуйте добавить:
log-slave-updates=TRUE
в ваш файл my.cnf.