MySQL Replication - триггеры не реплицируют несколько баз данных - PullRequest
0 голосов
/ 18 ноября 2011

У меня есть следующая установка MySQL 5.5.16, работающая должным образом: Сервер A w / db.a и db.b Сервер B, настроенный как подчиненный для db.a (не db.b), с помощью --replicate-Таблицы wild-do-table Таблицы на Srv.A-db.b имеют триггеры на вставке, которые вставляют / обновляют db.a

db.a надлежащим образом реплицируется в Server.B, т. е. при обновлении через SQLклиент на db.a на server.A происходит, правильно реплицируется на db.a на Server.B

Теперь возникает проблема: триггеры на Server.A / db.b, которые обновляют / вставляют db.aне реплицируется ... потерял много часов, истощая все мои знания об этом ...

На Srv.A / db.b я наконец создал федеративную таблицу, указывающую на Srv.A / db.a и триггерыработа через объединенную таблицу корректно реплицируется, но она ОЧЕНЬ медленная, и некоторые вещи использовать нельзя (например, НА ДУБЛИРОВАНИИ ОБНОВЛЕНИЯ) ... так что на самом деле это решение для козла остановки.

Если я пытаюсь реплицировать обе базы данных.a и db.b триггеры работают нормально, но db.b ОГРОМНЫЙ и не должен реплицироваться на сервере. B.

Любые предложения о том, как заставить работать триггеры на db.b -> db.a, когда реплицируется только db.a ??

Спасибо за предложение.

1 Ответ

0 голосов
/ 19 ноября 2011

См. Часто задаваемые вопросы по MySQL Trigger B.5.12: http://dev.mysql.com/doc/refman/5.0/en/faqs-triggers.html#qandaitem-B-5-1-12

'Триггеры и репликация в MySQL 5.0 работают так же, как и в большинстве других систем баз данных: действия, выполняемые с помощью триггеров на главном сервере, не реплицируются на подчиненный сервер.'

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

...