Форумы

GNU.SU - Записки нубо-линуксойда :: Форумы :: Сервисы :: SQL
 
<< Предыдущая тема | Следующая тема >>
MySQL пропуск повторяющихся ошибок репликации
Модераторы: tastelinux, Frizze, andrey, Bender
Автор Добавил
tastelinux
Втр Июн 21 2011, 09:04
andreika

ID пользователя #1
Зарегистрирован: Птн Апр 30 2010, 12:25

Сообщений: 337
В нормальной ситуации MySQL репликация будет останавливаться каждый раз при получении ошибки с мастера. Это нужно потому, что MySQL сам не может идентифицировать причину проблемы, и для того чтобы не повредить данные предлагает Вам выполнить решающее действие. Вы можете пропустить ошибку, если видите, что пришедший запрос ошибочный, либо выполнить его в ручную и запустить реплику.

Например сделать это можно так:
mysql>SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE;


Однако, может так случиться, что вам будт необходимо пропустить большое количество ошибочных запросов

(выдача show slave status;):

"1062 | Error 'Duplicate entry 'xyz' for key 1' on query. Default database: 'db'. Query: 'INSERT INTO ..."


Если Вам и правда необходимо пропустить такие ошибки по шаблону - номеру ошибки, то Вам необходимо внести соответствуюие изменения в ваш my.cnf:

slave-skip-errors = 1062


Это означает, что каждый раз ошибка 1062 будет пропущена по умолчанию
Как например в моем примере:

Error: 1062 SQLSTATE: 23000 (ER_DUP_ENTRY)
Message: Duplicate entry ‘%s’ for key %d


Так же можно через азпятую указать несколько ошибок.

slave-skip-errors=[err_code1,err_code2,...|all]

Все номера и расшифровки ошибок можно найти тут, или из Вашего show slave status;.
Наверх

 

Перейти:     Наверх

Транслировать сообщения этой темы: rss 0.92 Транслировать сообщения этой темы: rss 2.0 Транслировать сообщения этой темы: RDF
Powered by e107 Forum System