Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Триггеры при MIXED репликации / 11 сообщений из 11, страница 1 из 1
25.10.2014, 22:15:43
    #38787356
mikhalken
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггеры при MIXED репликации
Добрый день, уважаемые форумчане.
Имеется два сервера с репликацией мастер-мастер, типом MIXED. К одному из мастеров был подключен слейв с целью хранить данные, удалённые на мастерах. Изначально пробовал решить задачу добавлением на слейв триггера, который вызывал ошибку и не давал удалить. Однако не учёл, что репликация иногда переводится сервером в режим ROW, и соответственно, триггер не срабатывает. В итоге, сохраняется примерно 1 запись из двух.
Кто может подсказать, какие возможны варианты в данной ситуации? Как мне сохранить данные на слейве?
...
Рейтинг: 0 / 0
28.10.2014, 10:39:13
    #38788995
mikhalken
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггеры при MIXED репликации
Ээээх, неужели ни у кого никаких идей?
...
Рейтинг: 0 / 0
29.10.2014, 13:07:22
    #38790606
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггеры при MIXED репликации
авторОднако не учёл, что репликация иногда переводится сервером в режим ROW, и соответственно, триггер не срабатывает. В итоге, сохраняется примерно 1 запись из двух
но ведь задумка в mysql была в том, что когда "выключаются" тригерры, зависимые изменения во всех других таблицах от мастера все равно прикатят, но уже в row-формате. По проекту должно работать.
Почему же у вас сохраняется одна запись ? чем еще осложнена ваша конфигурация ? упростите ее.
...
Рейтинг: 0 / 0
29.10.2014, 13:11:07
    #38790614
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггеры при MIXED репликации
документация по этому вопросу категорична - переключитесь на statement based навсегда.
авторIf you want triggers to execute on both the master and the slave—perhaps because you have different triggers on the master and slave—you must use statement-based replication.

ну или помучайтесь с педальным переключением в сессии :
авторHowever, to enable slave-side triggers, it is not necessary to use statement-based replication exclusively. It is sufficient to switch to statement-based replication only for those statements where you want this effect, and to use row-based replication the rest of the time.
тут имеется ввиду что в приложении вы делаете SET SESSION binlog_format = 'STATEMENT'; ну а по прошествии критического участка потом обратно MIXED.
...
Рейтинг: 0 / 0
29.10.2014, 13:17:17
    #38790624
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггеры при MIXED репликации
авторИзначально пробовал решить задачу добавлением на слейв триггера, который вызывал ошибку и не давал удалить
а. дошло теперь. оригинальное решение. и оригинальная же проблема .

я предлагаю переделать удаление. вы можете выключать binlog в конкретной удаляющей сессии на мастерах, запускать оператор удаления. если это отдельная программа делает, так и включать обратно не надо даже. это сессионная переменная не сохранится глобально.
...
Рейтинг: 0 / 0
29.10.2014, 17:44:42
    #38791064
mikhalken
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггеры при MIXED репликации
netwind, про SET SESSION binlog_format мысль интересная, но, к сожалению, не прокатило. Слейв реплицируется с одного из мастеров (например А). Итого, при репликации с мастера В, бинлог передаётся на А в нужном формате, но там переводится уже в другой формат. А формат логов Мастера А я не могу контролировать, к сожалению, с мастера В.
...
Рейтинг: 0 / 0
29.10.2014, 18:28:23
    #38791114
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггеры при MIXED репликации
mikhalken, согласно моей последней версии этого вообще делать не нужно.
у вас репликация с игнорированием ошибок что-ли настроена ? так это в любом случае нехорошо.
...
Рейтинг: 0 / 0
29.10.2014, 21:50:11
    #38791223
mikhalken
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггеры при MIXED репликации
netwind,

Пропуск ошибки у меня только одной, которая 100% не выскачет в другом случае, так что нормально. А вот выключать бинлог не получится - во-первых, это делает не программа, а евент либо вручную, а, во-вторых, кроме двух мастеров и слейва, про которые я написал, есть ещё 2 слейва. Итого операцию придётся выполнять 4 раза.
...
Рейтинг: 0 / 0
29.10.2014, 22:37:57
    #38791229
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггеры при MIXED репликации
mikhalken, ну перестанет делать евент.
все равно изначально задумка с event тупая и расчитана на виндовых DBA.
...
Рейтинг: 0 / 0
30.10.2014, 12:54:55
    #38791591
mikhalken
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггеры при MIXED репликации
netwind,

Других вариантов особо нет, ибо серверов реально много.
...
Рейтинг: 0 / 0
30.10.2014, 15:28:12
    #38791825
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггеры при MIXED репликации
mikhalken, я думаю, set session даже в event должен работать нормально. Хотя точно сказать не могу, потому что считаю механизм event избыточным и ненужным. Проверяйте.

И нам все равно сколько чего там у вас. Хоть увольняйтесь из-за неумения найти компромисс. Это форум, а не психологическая поддержка
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Триггеры при MIXED репликации / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]