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

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

МАСТЕР 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

МАСТЕР2:

[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 [ОШИБКА] Slave SQL: не удалось выполнить событие Update_rows для таблицы nagios.nagios_servicestatus; Не удается найти запись в nagios_servicestatus, код ошибки: 1032; ошибка обработчика HA_ERR_KEY_NOT_FOUND; главный журнал событий mariadb-bin.000002, end_log_pos 259533668, Error_code: 1032

190428 3:21:02 [Предупреждение] Slave: не удается найти запись в 'nagios_servicestatus' Error_code: 1032

190428 3:21: 02 [ERROR] Ошибка при выполнении запроса, ведомый поток 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 = '259532745' и новая позиция в 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 [ОШИБКА] Slave SQL: не удалось выполнить событие Update_rows для таблицы nagios.nagios_customvariablestatus; Не удается найти запись в nagios_customvariablestatus, код ошибки: 1032; ошибка обработчика HA_ERR_KEY_NOT_FOUND; главный журнал событий mariadb-bin.000002, end_log_pos 259534029, Error_code: 1032

190429 9:31:33 [Предупреждение] Slave: не удается найти запись в 'nagios_customvariablestatus' Error_code: 1032

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

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

Спасибо,

0
задан 29 April 2019 в 23:04
1 ответ

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

0
ответ дан 5 December 2019 в 03:13

Теги

Похожие вопросы