Репликация вольфрама от 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.

Другие вопросы по тегам