Рубріки: HighloadТеория

Mysql 1062 Duplicate entry for key PRIMARY при репликации

Игорь Грегорченко

Такая ошибка в Mysql происходит по причине того, что на реплике уже существует запись, которая пришла с мастера.

При просмотре состояния репликации:

mysql> SHOW SLAVE STATUSG

Вы увидите такую проблему:

Last_SQL_Errno: 1062
Last_SQL_Error: Error 'Duplicate entry '115846' for key 'PRIMARY'' on query. Default database: 'db'. Query: 'INSERT INTO some_table ...

Вариантов решения существует несколько.

1. Пропустить ошибку

Можно заставить Mysql пропустить эту ошибку и продолжить репликацию. Для этого нужно выполнить такой запрос на реплике:

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

Такой метод стоит использовать только в исключительных ситуациях. Если проблема повторяется, это плохой подход.

1. Пропускать подобные ошибки всегда

Если ошибки возникают периодически, но это не нарушает логику приложения, то можно использовать такую настройку в файле my.cnf (на слейве):

slave-skip-errors = 1062 

Это позволит постоянно игнорировать подобные ошибки при репликации.

3. Игнорирование проблемных таблиц

Проблемы могут быть вызваны тем, что в репликации участвуют таблицы, которые нет необходимости реплицировать.
Их можно исключить используя такую настройку в my.cnf (на мастере):

replicate_wild_ignore_table = playground.% 

Все таблицы из базы данные playground не будут участвовать в репликации

Таких инструкций может быть несколько:

replicate_wild_ignore_table = playground.% 
replicate_wild_ignore_table = data.temp_%

Кроме базы playground, будут также исключены все таблицы которые начинаются на “temp_” из базы data

Этот текст был написан несколько лет назад. С тех пор упомянутые здесь инструменты и софт могли получить обновления. Пожалуйста, проверяйте их актуальность.

Останні статті

Обучение Power BI – какие онлайн курсы аналитики выбрать

Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…

13.01.2024

Work.ua назвал самые конкурентные вакансии в IТ за 2023 год

В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…

08.12.2023

Украинская IT-рекрутерка создала бесплатный трекер поиска работы

Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…

07.12.2023

Mate academy отправит работников в 10-дневный оплачиваемый отпуск

Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…

07.12.2023

Переписки, фото, история браузера: киевский программист зарабатывал на шпионаже

Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…

07.12.2023

Как вырасти до сеньйора? Девелопер создал популярную подборку на Github

IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…

07.12.2023