2014-12-03 4 views
0

Я решаю проблему репликации master-slave-сервера MySQL. Вот так:Решение для репликации MySQL/MariaDB

У меня есть сервер A и сервер B. Сервер A запускает приложение, которое генерирует данные в таблицы TA1, TA2 и TA3. Я хочу реплицировать определенное подмножество TA1, TA2 и TA3 (определяемое выбором внутреннего соединения) в одну таблицу TB1 на сервер B, выделенный для механизма отчетности. Данные должны быть скопированы на сервер B как можно скорее сразу после их создания на сервере A. Теперь я могу сделать это, как дереворежущий, путем тиражирования таблиц TAx с сервера A на TBx, расположенного на сервере B, а затем создавая представление на сервере B для фильтрации ненужных строк.

О, как я ненавижу это решение. Я хочу сделать фильтрацию строк на стороне сервера A и реплицировать только подмножество. Любые мысли, как настроить его?

Я хочу, чтобы избежать планировщика, который будет запускать запрос каждую минуту или около того, чтобы создать таблицу на сервере A до репликации, я хочу, чтобы избежать использования триггеров для фильтрации данных, я хочу, чтобы данные были реплицированы так много онлайн как можно, ..

ответ

0

При использовании репликации на основе STATEMENT вы можете просто использовать триггеры в таблицах на подчиненной стороне для фильтрации нежелательных строк (изменения строк все равно будут записываться в файлы репликации binlog и будут отфильтрованы только на подчиненная сторона)

Начиная с версии MariaDB 10.1 (еще не версии GA) вы также можете использовать репликацию на основе ROW и все еще иметь триггеры подчиненной стороны для фильтрации :

https://mariadb.com/kb/en/mariadb/documentation/replication/standard-replication/running-triggers-on-the-slave-for-row-based-events/

Или вы могли бы иметь как НАЛОГ и таблицу TBX на уже мастере, с триггерами НАЛОГА, выполняющих фильтрацию и только копированием требуемых изменений в теневых таблицы TBX, то есть фильтры репликации, которые только Реплицируйте Таблицы TBx к ведомому (-ам).

Смежные вопросы