|
|
|
| Проблема такая: запустил сервер с функцией -log-bin, т.е. теперь все транзакции сохраняются в файл, но теперь не даёт запускать созданные до этого процедуры, т.к. они производят изменения в таблицах. Как исправить данную ситуацию? Для создания процедур было предложено присвоить глобальной переменной --log-bin-trust-routine-creators значение 1, данное действие выполнил и получилось создавать процедуры, но запускать их всё равно не даёт.
может кто знает как действовать? | |
|
|
|
|
|
|
|
для: ronin80
(23.04.2008 в 10:11)
| | Что пишет в ответ при запуске хранимой процедуры? | |
|
|
|
|
|
|
|
для: cheops
(23.04.2008 в 10:42)
| | отключил log-bin вроде заработало
теперь возникает вопрос как влияет вообще параметр log-bin на работу с процедурами, необходимо ли использовать параметр DETERMINISTIC или MODIFIES SQL DATA при создании таковой?
я так понял что эти параметры указывают серверу на то что процедура или функция будут изменять данные, чтобы сервер учитывал их действия в журнальных файлах?
при создании получается можно ещё использовать переменную --log-bin-trust-routine-creators?
и может ли влиять режим log-bin на созданные ранее процедуры/функции, надо ли их пересоздавать с указанными ранее параметрами? | |
|
|
|
|
|
|
|
для: ronin80
(23.04.2008 в 12:14)
| | основной вопрос теперь как мне сделать так чтобы и архивирование работало и не ругалось на процедуры
PS попытаюсь посмотреть как влияет такой режим на выполнение процедур, на что ругается | |
|
|
|
|
|
|
|
для: ronin80
(23.04.2008 в 12:17)
| | процедуры проверил - работают, наверное был какой-то временный глюк
таким образом режим log-bin не влияет на работу процедур, но создавать удаётся только при присвоении переменной log_bin_trust_routine_creators=1, либо при запуске сервера с данным значением, а что за переменная log_bin_trust_function_creators ? на неё сервер ругается, пишет что такой переменной не найдено, хотя в статье откуда взял информацию она упоминается?
то есть получается только одно ограничение - на создание процедур функций? и надо ли в режиме log-bin при создании указывать один из этих параметров:
{CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA}
или сервер сам определит что процедура изменяет данные в БД? | |
|
|
|
|
|
|
|
для: ronin80
(23.04.2008 в 12:35)
| | цитирую текст из книги "... в подлиннике"
log_bin_trust_function_creators переменная применяется в том случае, когда
активизирована регистрация запросов в журналные файлы. Эта переменная позволяет
предотвращать попадание небезопасных хранимых процедур в журнальный файл.
объясните пожалуйста что значит: небезопасных хранимых процедур ? | |
|
|
|
|
|
|
|
для: ronin80
(24.04.2008 в 07:42)
| | Дело в том, что бинарный журнал используется для двух вещей - восстановление данных и репликация, хранимые процедуры не всегда могут быть корректно обработаны - поэтому их стараются по минимуму записывать в бинарный журнал. | |
|
|
|
|
|
|
|
для: cheops
(24.04.2008 в 11:51)
| | а информация изменяемая при выполнении процедур запишется в журнал? | |
|
|
|
|
|
|
|
для: ronin80
(24.04.2008 в 12:56)
| | узнал что переменная log_bin_trust_functions_creators поддерживается только с версии 5.1.16
я работаю с версией 5.0.6, т.е. выходит у меня не получится использовать журналирование?
PS при попытке в файл my.ini прописать log_bin_trust_functions_creators=1 сервер комментирует эту строку и пишет неизвестная переменная (то же самое и routine) | |
|
|
|