Назад | Перейти на главную страницу

Подчиненная репликация останавливается с Last_SQL_Errno: 1032

Я добавил дополнительный подчиненный сервер к существующей репликации MySQL. Главный сервер и старый подчиненный сервер работают нормально без каких-либо проблем, но новый добавленный сервер останавливается из-за следующей ошибки:

Last_SQL_Errno: 1032
Last_SQL_Error: не удалось выполнить событие Update_rows для таблицы xxx.email_events; Не удается найти запись в "email_events", Error_code: 1032; ошибка обработчика HA_ERR_KEY_NOT_FOUND; главный журнал событий mysqld-bin.000410, end_log_pos 368808733

После ремонта еще несколько часов.

Вопросы

Вы можете найти код предложения sql, например /usr/bin/mysqlbinlog -v --start-position=142743807 --stop-position=147399325 /data/mysql/data/master-bin.000010 > temp.log

Затем сравните разницу в базе данных ведомого и ведущего согласно temp.log на конкретной позиции. Затем обновите подчиненную базу данных.

Затем пропустите эту строку с помощью mysql -e "stop slave; SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1; start slave;";

Для людей, у которых это разовая ошибка, вы можете попробовать пропустить этот элемент:

УСТАНОВИТЬ ГЛОБАЛЬНЫЙ SQL_SLAVE_SKIP_COUNTER = 1;

НАЧАТЬ РАБ;

Вы можете установить следующее в my.cnf вашего ведомого устройства: [mysqld] slave-skip-errors = 1032

Но как говорится в документации: не используйте эту опцию, если вы полностью не понимаете, почему вы получаете ошибки. Одна из возможных причин этой ошибки может быть связана с «Slave_IO_Running: Yes», ​​но «Slave_SQL_Running: No», что означает, что ваш процесс Slave IO работает и получение данных от Master, но не может быть выполнено из-за того, что процесс Slave_SQL_Running остановлен. Инструмент мониторинга, такой как Monyog, можно использовать для упреждающего мониторинга репликации и предупреждения об ошибке, задержке или отключении между главным и подчиненным серверами.