Собственно, вылезла такая ошибка в выводе команды show slave status\G:
***
Slave_IO_Running: Yes
Slave_SQL_Running: No
***
Last_Errno: 1062
Last_Error: Error 'Duplicate entry' ******
***
Репликация остановилась, работает только поток считывания данных (slave_io) с master-сервера. Это нормальная ситуация, ошибки случаются. По умолчанию, slave-сервер в случае ошибки останавливает поток slave_sql, который выполняет инструкции из бинарного лога от master-сервера. Предполагается, что администратор БД вручную исправит ошибку.
Причины бывают разные, в моем случае причиной была аварийная остановка slave-сервера.
Как исправить?
Пропустить запрос, вызывающий ошибку. Либо так:
mysql> SLAVE STOP;
mysql> SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql> START SLAVE;
Либо указав в конфигурационном файле my.cnf в секции [mysqld] опцию:
slave-skip-errors = 1062
и перезапустить сервер, например, service mysqld restart. Также проверить вывод команды show slave status\G - бывают случаи, когда сервер mysqld запускается с опцией --skip-slave-start, которая запрещает автозапуск репликации при старте сервера.
В данном случае (slave-skip-errors = 1062) сервер будет игнорировать ВСЕ такие ошибки, возникающие при репликации. В первом варианте, только одну инструкцию пропустит из бинарного лога.
Литература:
http://dev.mysql.com/doc/refman/5.5/en/replication-options-slave.html#option_mysqld_slave-skip-errors
***
Slave_IO_Running: Yes
Slave_SQL_Running: No
***
Last_Errno: 1062
Last_Error: Error 'Duplicate entry' ******
***
Репликация остановилась, работает только поток считывания данных (slave_io) с master-сервера. Это нормальная ситуация, ошибки случаются. По умолчанию, slave-сервер в случае ошибки останавливает поток slave_sql, который выполняет инструкции из бинарного лога от master-сервера. Предполагается, что администратор БД вручную исправит ошибку.
Причины бывают разные, в моем случае причиной была аварийная остановка slave-сервера.
Как исправить?
Пропустить запрос, вызывающий ошибку. Либо так:
mysql> SLAVE STOP;
mysql> SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql> START SLAVE;
Либо указав в конфигурационном файле my.cnf в секции [mysqld] опцию:
slave-skip-errors = 1062
и перезапустить сервер, например, service mysqld restart. Также проверить вывод команды show slave status\G - бывают случаи, когда сервер mysqld запускается с опцией --skip-slave-start, которая запрещает автозапуск репликации при старте сервера.
В данном случае (slave-skip-errors = 1062) сервер будет игнорировать ВСЕ такие ошибки, возникающие при репликации. В первом варианте, только одну инструкцию пропустит из бинарного лога.
Литература:
http://dev.mysql.com/doc/refman/5.5/en/replication-options-slave.html#option_mysqld_slave-skip-errors
исправь mysql> SLAVE STOP;
ОтветитьУдалитьна mysql>STOP SLAVE ;