триггеры будут работать в подчиненном MySQL в репликации Single Master Multi-Slave - PullRequest
1 голос
/ 21 октября 2011

Наш клиент использует один ведущий с несколькими ведомыми (в кластере).

Теперь он хочет, чтобы мы написали несколько триггеров (только), которые запускаются на ведомом (-ых), когда новые записи добавляются, обновляются или удаляются на ведомом (-ых). Этот триггер должен запускать внешнюю Java-программу.

Возможно ли это? рекомендуется?

Как мы запускаем Java-программу из триггера? Это рекомендуется / безопасно?

Есть ли ошибки, о которых нужно позаботиться?

1 Ответ

1 голос
/ 21 октября 2011

Да, это возможно.Вам нужно создать эти триггеры на ведомых, они будут срабатывать при чтении и выполнении binlog.

Вы можете выполнить внешнюю программу, используя sys_exec UDF, доступный в MySQL Forge (или по этой ссылке ).

SELECT sys_exec('/path/to/program')

Остерегайтесь того, что делает программа, пока не вернется внешняя программа - запрос не завершится.Если это что-то, что требует дальнейшей обработки, я предлагаю создать какую-то систему очередей, прослушивающую порт, чтобы вы могли немедленно exit(0), позволить программе выполнить свою работу и выпустить поток mysql, чтобы запрос мог завершиться.

...