Репликация Master- Master прерывается после перезагрузки сервера

У меня есть Master-Master Replication со следующей конфигурацией. Из-за некоторых патчей мы должны перезагрузить обоих мастеров. Но когда я проверяю, репликация не работает.

МАСТЕР 1:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0

bind-address=Master 1
port=3306
query_cache_size=16M
query_cache_limit=4M
tmp_table_size=64M
max_heap_table_size=64M
key_buffer_size=32M
table_open_cache=32
innodb_file_per_table=1
max_connections=1000
server_id=2
binlog_format='MIXED'
log-bin=/var/log/mariadb/mariadb-bin.log
max_allowed_packet=1000M
general_log=1
auto_increment_increment=2
auto_increment_offset=2



[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

!includedir /etc/my.cnf.d

Master2:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
bind-address=Master2
port=3306
query_cache_size=16M
query_cache_limit=4M
tmp_table_size=64M
max_heap_table_size=64M
key_buffer_size=32M
table_open_cache=32
innodb_file_per_table=1
#innodb_force_recovery=5
max_connections=1000
server_id=1
binlog_format='MIXED'
log-bin=/var/log/mariadb/mariadb-bin.log
max_allowed_packet=1000M
general_log=1
auto_increment_increment=2
auto_increment_offset=1

[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

!includedir /etc/my.cnf.d

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

ОШИБКА:

190428 3:21:02 [ОШИБКА] Подчиненный SQL: не удалось выполнить событие Update_rows для таблицы nagios.nagios_servicestatus; Невозможно найти запись в 'nagios_servicestatus', код ошибки: 1032; ошибка обработчика HA_ERR_KEY_NOT_FOUND; главный журнал событий mariadb-bin.000002, end_log_pos 259533668, код ошибки: 1032

190428 3:21:02 [Предупреждение] Подчиненный: не удается найти запись в 'nagios_servicestatus' Код ошибки: 1032

190428 3:21:02 [ОШИБКА] Ошибка при выполнении запроса, прерывание подчиненного потока SQL. Устраните проблему и перезапустите подчиненный поток SQL с помощью "SLAVE START". Мы остановились на позиции журнала 'mariadb-bin.000002' 259532745

190429 9:31:32 [ОШИБКА] Ошибка чтения пакета с сервера: потеря соединения с сервером MySQL во время запроса (server_errno = 2013)

190429 9:31:32 [Примечание] Поток подчиненного ввода-вывода прерван во время чтения события

190429 9:31:32 [Примечание] Выход подчиненного потока ввода-вывода, чтение до журнала 'mariadb-bin.000002', позиция 369070380

190429 9:31:33 [Примечание] Ведомый поток SQL инициализирован, начав репликацию в журнале 'mariadb-bin.000002' в позиции 259532745, релейный журнал './mariadb-relay-bin.000002' позиции: 143476361

190429 9:31:33 [Примечание] "SQL_SLAVE_SKIP_COUNTER=1" выполнено по адресу relay_log_file='./ Mariadb-relay-bin.000002', relay_log_pos='143476361', master_log_name='mariadb-bin.000002', master_log_pos='2595327 'и новая позиция в relay_log_file ='. / mariadb-relay-bin.000002 ', relay_log_pos =' 143477368 ', master_log_name =' mariadb-bin.000002 ', master_log_pos =' 259533752 '

190429 9:31:33 [ОШИБКА] Подчиненный SQL: не удалось выполнить событие Update_rows для таблицы nagios.nagios_customvariablestatus; Не могу найти запись в 'nagios_customvariablestatus', код ошибки: 1032; ошибка обработчика HA_ERR_KEY_NOT_FOUND; главный журнал событий mariadb-bin.000002, end_log_pos 259534029, код ошибки: 1032

190429 9:31:33 [Предупреждение] Ведомый: не удается найти запись в 'nagios_customvariablestatus' Код ошибки: 1032

190429 9:31:33 [ОШИБКА] Ошибка при выполнении запроса, подчиненный поток SQL прерван. Устраните проблему и перезапустите подчиненный поток SQL с помощью "SLAVE START". Мы остановились на позиции журнала 'mariadb-bin.000002' 259533752

Нужно ли мне добавить конфигурацию в my.cnf для автоматического восстановления репликации после перезагрузки?

Спасибо,

1 ответ

Я думаю, что вторичный мастер не был синхронизирован, и приложения обращаются к вторичному хозяину, чтобы изменить запись. Пожалуйста, проверьте первичный мастер, если он исправен, и укажите соединения приложений с этим. Если вы используете haproxy, это может быть проще для вас. Я думаю, что лучший вариант - снова установить вторичного мастера.

Другие вопросы по тегам