|
|
|
Триггеры при MIXED репликации
|
|||
|---|---|---|---|
|
#18+
Добрый день, уважаемые форумчане. Имеется два сервера с репликацией мастер-мастер, типом MIXED. К одному из мастеров был подключен слейв с целью хранить данные, удалённые на мастерах. Изначально пробовал решить задачу добавлением на слейв триггера, который вызывал ошибку и не давал удалить. Однако не учёл, что репликация иногда переводится сервером в режим ROW, и соответственно, триггер не срабатывает. В итоге, сохраняется примерно 1 запись из двух. Кто может подсказать, какие возможны варианты в данной ситуации? Как мне сохранить данные на слейве? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2014, 22:15:43 |
|
||
|
Триггеры при MIXED репликации
|
|||
|---|---|---|---|
|
#18+
Ээээх, неужели ни у кого никаких идей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2014, 10:39:13 |
|
||
|
Триггеры при MIXED репликации
|
|||
|---|---|---|---|
|
#18+
авторОднако не учёл, что репликация иногда переводится сервером в режим ROW, и соответственно, триггер не срабатывает. В итоге, сохраняется примерно 1 запись из двух но ведь задумка в mysql была в том, что когда "выключаются" тригерры, зависимые изменения во всех других таблицах от мастера все равно прикатят, но уже в row-формате. По проекту должно работать. Почему же у вас сохраняется одна запись ? чем еще осложнена ваша конфигурация ? упростите ее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 13:07:22 |
|
||
|
Триггеры при MIXED репликации
|
|||
|---|---|---|---|
|
#18+
документация по этому вопросу категорична - переключитесь на 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 13:11:07 |
|
||
|
Триггеры при MIXED репликации
|
|||
|---|---|---|---|
|
#18+
авторИзначально пробовал решить задачу добавлением на слейв триггера, который вызывал ошибку и не давал удалить а. дошло теперь. оригинальное решение. и оригинальная же проблема . я предлагаю переделать удаление. вы можете выключать binlog в конкретной удаляющей сессии на мастерах, запускать оператор удаления. если это отдельная программа делает, так и включать обратно не надо даже. это сессионная переменная не сохранится глобально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 13:17:17 |
|
||
|
Триггеры при MIXED репликации
|
|||
|---|---|---|---|
|
#18+
netwind, про SET SESSION binlog_format мысль интересная, но, к сожалению, не прокатило. Слейв реплицируется с одного из мастеров (например А). Итого, при репликации с мастера В, бинлог передаётся на А в нужном формате, но там переводится уже в другой формат. А формат логов Мастера А я не могу контролировать, к сожалению, с мастера В. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 17:44:42 |
|
||
|
Триггеры при MIXED репликации
|
|||
|---|---|---|---|
|
#18+
mikhalken, согласно моей последней версии этого вообще делать не нужно. у вас репликация с игнорированием ошибок что-ли настроена ? так это в любом случае нехорошо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 18:28:23 |
|
||
|
Триггеры при MIXED репликации
|
|||
|---|---|---|---|
|
#18+
netwind, Пропуск ошибки у меня только одной, которая 100% не выскачет в другом случае, так что нормально. А вот выключать бинлог не получится - во-первых, это делает не программа, а евент либо вручную, а, во-вторых, кроме двух мастеров и слейва, про которые я написал, есть ещё 2 слейва. Итого операцию придётся выполнять 4 раза. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 21:50:11 |
|
||
|
Триггеры при MIXED репликации
|
|||
|---|---|---|---|
|
#18+
mikhalken, ну перестанет делать евент. все равно изначально задумка с event тупая и расчитана на виндовых DBA. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 22:37:57 |
|
||
|
Триггеры при MIXED репликации
|
|||
|---|---|---|---|
|
#18+
netwind, Других вариантов особо нет, ибо серверов реально много. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2014, 12:54:55 |
|
||
|
Триггеры при MIXED репликации
|
|||
|---|---|---|---|
|
#18+
mikhalken, я думаю, set session даже в event должен работать нормально. Хотя точно сказать не могу, потому что считаю механизм event избыточным и ненужным. Проверяйте. И нам все равно сколько чего там у вас. Хоть увольняйтесь из-за неумения найти компромисс. Это форум, а не психологическая поддержка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2014, 15:28:12 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38790624&tid=1834007]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
66ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 394ms |

| 0 / 0 |
