Игнорирование ошибок репликации MySQL

Если репликация встала из-за ошибки, то посмотреть проблемную запись можно следующим образом:

# mysqlbinlog -v --start-position=872610695 --stop-position=872610695 /srv/mysql/bm5-bin.006823

Где:

  • 872610695 - значение из колонки Exec_Master_Log_Pos,
  • bm5-bin.006823 - значение из колонки Relay_Master_Log_File.

Пропустить одну запись из журнала репликации можно следующим образом:

STOP SLAVE; SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1; START SLAVE;

Игнорировать ошибки репликации небезопасно. Однажды пропущенная запись из журнала репликации приводит к появлению различий в таблицах на источнике и реплике. Даже если база данных содержит лишь таблицы, содержимое которых используется как кэш или журнал событий, и небольшая разница в данных не критична, однажды появившееся расхождение может приводить к возникновению новых ошибок репликации. Поэтому стоит использовать пропуск записей из журнала репликации лишь как временную меру до тех пор, пока не будет развёрнута новая реплика.

Дополнительные материалы: