Задавайте вопросы, мы ответим
Вы не зашли.
интересует корректность репликации функции RAND() например, в документации говорится только про RAND() и NOW() корректно работают для функций вот это меня настораживает, т.к. Про процедуры и функции написано отдельно.
Пишут:
As a consequence of the preceding changes, the following conditions currently apply to stored function creation when binary logging is enabled. These conditions do not apply to stored procedure creation.
И после этого абзаца говорится про особенности репликации для функций, где и говорится про RAND().
ссылка на оригинал:
http://dev.mysql.com/doc/refman/5.0/en/ … gging.html
Неактивен
Да, эти функции реплицируются правильно. При реальной записи в
binary log вызовы этих функций подменяются реальными значениями
(которые получены на master-сервере).
Но это работает только для хранимых процедур (ведь для них можно
в журнал написать реально выполняемый код). Для хранимых функций
этот метод не проходит (т.к. функция может вызываться на каждую
строку таблицы и просто нет разумного способа записать это в журнал).
Для разрешения создания хранимых функций (со включенным двоичным
журналом) в 5.0 введена специальная переменная - log_bin_trust_function_creators.
Установка этой переменной означает, что пользователь понимает, что
RAND() и прочие non-deterministic функции не будут правильно
реплицироваться, и готов пойти на этот шаг ("я умный, я знаю, что я делаю").
В 5.1 такой проблемы можно избежать, включив row-based binary log.
Неактивен