Добрый день.
Разбираюсь с mysql репликацией. Поднял master(+2 slave) - master(+1 slave) репликацию.
Делал всё как по инструкции.
- На мастере блокировал таблицы на запись
- Делал бекап отправлял на слейв
- На слейве останавливал слейв
- Разворачивал бекап и устанавливал реквизиты мастер статуса.
На слейвах включил read-only.
Всё работает.
Через некоторое непродолжительное время на любой ноде вылетает то 1032-я, то 1062-я ошибки.
Error Code: 1062 — Duplicate entry 'ххххх' for key 1 — Попытка записать уже имеющееся значение в ключевую колонку.
Ошибка: 1032 SQLSTATE: HY000 (ER_KEY_NOT_FOUND) - Сообщение: не Может найти запись в '%s'
Проект поднят на демоверсии битрикса и виртуалбокс нодах.
Ошибки возникают в активно используемых таблицах - статистика(фиксация хитов и тд и тп) и сессий, Чаще всего сессий.
Конфиги мастера
[mysqld]
server-id = 1
## enable logging message
log-error = /var/log/mysql/error.log
## enable slow requests logging
slow-query-log-file = /var/log/mysql/slow.log
slow-query-log = 1
long-query-time = 3
log-slow-slave-statements
## define binlog options for master server
binlog_cache_size = 128K
expire_logs_days = 5
max_binlog_size = 100M
binlog-format = mixed
log-bin = mysql-bin
## enable this options for security, but it decrease performance
# innodb_flush_log_at_trx_commit = 1
# sync_binlog = 1
relay-log = relay-bin
relay-log-index = relay-bin.index
relay-log-info-file = relay-bin.info
skip-name-resolve
Конфиги слейва
[mysqld]
server-id = 2
## enable logging message
log-error = /var/log/mysql/error.log
## enable slow requests logging
slow-query-log-file = /var/log/mysql/slow.log
slow-query-log = 1
long-query-time = 3
log-slow-slave-statements
relay-log = relay-bin
relay-log-index = relay-bin.index
relay-log-info-file = relay-bin.info
skip-name-resolve
Что может быть не так?
Вот буквально сейчас восстановил master1-master2 master2-slave4 репликацию около 5 раз обновил страничку на slave4 error 1032, а до этого siege тестировал нагрузку и отвалились master2 и slave4 о которых говорил - так не должно быть!