InnoDB Cluster addInstance: плагин group_replication сообщил: "чтение не удалось"

Запуск кластера InnoDB с использованием 5.7.25 (в ближайшее время планируется переход на 8.0) Два моих экземпляра покинули кластер из-за проблем с сетью, и у меня остался один исправный узел.

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

Что я делаю неправильно?

Примечание: host1 - это исправный узел, оставшийся в cluser. host2 присоединяется

Процедура на host1:

  1. Установлен super_read_only = ON
  2. Скопируйте последние GTID, используя: select @@global.gtid_executed;
  3. Установлен super_read_only = OFF (прямо перед шагом 3 на host2)

Процедура на host2:

  1. Остановить mysql
  2. rsync mysql data dir с host1, используя:rsync -Parvz --exclude="auto.cnf" --exclude="<host1>*" --exclude="binlog.*" <user>@<host1>:/mysql-data/* .
  3. Запустить mysql
  4. Очистите журналы репликации и установите GTID, используя:
reset master;
reset slave;
set SQL_LOG_BIN=0; 
set @@GLOBAL.GTID_PURGED='<gtid from step 2 on host1>`;
set SQL_LOG_BIN=1; 
  1. Подключитесь к MySQL Shell и добавьте новый узел (host2) в кластер:cluster.addInstance('root@host2:3306', {ipWhitelist: 'host1, host2'})

Журналы от нового экземпляра, который не может присоединиться (host2):

2020-03-09T15:19:33.328996Z 38 [Note] 'CHANGE MASTER TO FOR CHANNEL 'group_replication_recovery' executed'. Previous state master_host='<NULL>', master_port= 0, master_log_file='', master_log_pos= 4, master_bind
=''. New state master_host='<NULL>', master_port= 0, master_log_file='', master_log_pos= 4, master_bind=''.
2020-03-09T15:19:33.514003Z 38 [Note] Plugin group_replication reported: 'Group communication SSL configuration: group_replication_ssl_mode: "DISABLED"'
2020-03-09T15:19:33.514154Z 38 [Warning] Plugin group_replication reported: '[GCS] Automatically adding IPv4 localhost address to the whitelist. It is mandatory that it is added.'
2020-03-09T15:19:33.514181Z 38 [Note] Plugin group_replication reported: '[GCS] SSL was not enabled'
2020-03-09T15:19:33.514193Z 38 [Note] Plugin group_replication reported: 'Initialized group communication with configuration: group_replication_group_name: "<uuid1>"; group_replication_local_address: "host2:33061"; group_replication_group_seeds: "host1:33061"; group_replication_bootstrap_group: false; group_replication_poll_spin_loops: 100; group_replication_compression_threshold: 1000; group_replication_ip_whitelist: "host1ip, host2ip"'
2020-03-09T15:19:33.514223Z 38 [Note] Plugin group_replication reported: '[GCS] Configured number of attempts to join: 0'
2020-03-09T15:19:33.514227Z 38 [Note] Plugin group_replication reported: '[GCS] Configured time between attempts to join: 5 seconds'
2020-03-09T15:19:33.514239Z 38 [Note] Plugin group_replication reported: 'Member configuration: member_id: 139923628; member_uuid: "<uuid2>"; single-primary mode: "true"; group_replication_auto_increment_increment: 7; '
2020-03-09T15:19:33.514576Z 40 [Note] 'CHANGE MASTER TO FOR CHANNEL 'group_replication_applier' executed'. Previous state master_host='<NULL>', master_port= 0, master_log_file='', master_log_pos= 4, master_bind=''. New state master_host='<NULL>', master_port= 0, master_log_file='', master_log_pos= 4, master_bind=''.
2020-03-09T15:19:33.613296Z 43 [Note] Slave SQL thread for channel 'group_replication_applier' initialized, starting replication in log 'FIRST' at position 0, relay log './scynbm96-relay-bin-group_replication_applier.000001' position: 4
2020-03-09T15:19:33.613383Z 38 [Note] Plugin group_replication reported: 'Group Replication applier module successfully initialized!'
2020-03-09T15:19:33.613811Z 0 [Note] Plugin group_replication reported: 'XCom protocol version: 3'
2020-03-09T15:19:33.613858Z 0 [Note] Plugin group_replication reported: 'XCom initialized and ready to accept incoming connections on port 33061'
2020-03-09T15:19:33.667118Z 0 [Warning] Plugin group_replication reported: 'read failed'
2020-03-09T15:19:33.685025Z 0 [ERROR] Plugin group_replication reported: '[GCS] The member was unable to join the group. Local port: 33061'
2020-03-09T15:19:34.732938Z 48 [Note] Got an error reading communication packets
2020-03-09T15:20:04.733653Z 52 [Note] Got an error reading communication packets
2020-03-09T15:20:33.613595Z 38 [ERROR] Plugin group_replication reported: 'Timeout on wait for view after joining group'
2020-03-09T15:20:33.613655Z 38 [Note] Plugin group_replication reported: 'Requesting to leave the group despite of not being a member'
2020-03-09T15:20:33.613697Z 38 [ERROR] Plugin group_replication reported: '[GCS] The member is leaving a group without being on one.'
2020-03-09T15:20:33.614136Z 43 [Note] Error reading relay log event for channel 'group_replication_applier': slave SQL thread was killed
2020-03-09T15:20:33.614325Z 43 [Note] Slave SQL thread for channel 'group_replication_applier' exiting, replication stopped in log 'FIRST' at position 0
2020-03-09T15:20:33.614966Z 40 [Note] Plugin group_replication reported: 'The group replication applier thread was killed'
2020-03-09T15:20:34.734155Z 55 [Note] Got an error reading communication packets

1 ответ

Следующие шаги наконец позволили мне сформировать здоровый трехузловой кластер.

  1. Установите исправный узел на super_read_only
  2. Подождите немного, пока завершатся существующие транзакции
  3. Скопируйте GTID, используя select @@global.gtid_executed;
  4. На host2 и host3 установите mysql с нуля
  5. На host2 и host3 остановите сервер mysql
  6. rsync данных на оба хоста, используя: rsync -Parvz --exclude="auto.cnf" --exclude="<host1>*" --exclude="binlog.*" <user>@<host1>:/mysql-data/* .
  7. Убедитесь, что GTID не изменились на host1
  8. Запустите mysql на host2 и host3, убедитесь, что данные не повреждены, выбрав в некоторых таблицах
  9. Используя оболочку mysql, растворите кластер
  10. Создайте кластер снова, добавив host2 и host3 с самого начала его существования.

Примечание. После распада кластера вам потребуется перезапустить все маршрутизаторы MySQL. Примечание 2: здесь есть некоторая информация для мониторинга:https://dev.mysql.com/doc/refman/5.7/en/group-replication-monitoring.html(Версия 8.x добавляет дополнительные журналы и инструменты)

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