SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 27.03.2007 23:03:47

Golova
Завсегдатай
Зарегистрирован: 23.03.2007
Сообщений: 92

хранимые процедуры: нюансы репликации

интересует корректность репликации функции 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

Неактивен

 

#2 27.03.2007 23:44:33

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: хранимые процедуры: нюансы репликации

Да, эти функции реплицируются правильно. При реальной записи в
binary log вызовы этих функций подменяются реальными значениями
(которые получены на master-сервере).

Но это работает только для хранимых процедур (ведь для них можно
в журнал написать реально выполняемый код). Для хранимых функций
этот  метод не проходит (т.к. функция может вызываться на каждую
строку таблицы и просто нет разумного способа записать это в журнал).

Для разрешения создания хранимых функций (со включенным двоичным
журналом) в 5.0 введена специальная переменная - log_bin_trust_function_creators.
Установка этой переменной означает, что пользователь понимает, что
RAND() и прочие non-deterministic функции не будут правильно
реплицироваться, и готов пойти на этот шаг ("я умный, я знаю, что я делаю").

В 5.1 такой проблемы можно избежать, включив row-based binary log.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson