InnoDB Cluster addInstance: плагин group_replication сообщил: "чтение не удалось"
Запуск кластера InnoDB с использованием 5.7.25 (в ближайшее время планируется переход на 8.0) Два моих экземпляра покинули кластер из-за проблем с сетью, и у меня остался один исправный узел.
Я выполняю следующую процедуру, чтобы добавить узел в кластер, но при этом возникают ошибки, показанные ниже.
Что я делаю неправильно?
Примечание: host1 - это исправный узел, оставшийся в cluser. host2 присоединяется
Процедура на host1:
- Установлен
super_read_only = ON
- Скопируйте последние GTID, используя:
select @@global.gtid_executed;
- Установлен
super_read_only = OFF
(прямо перед шагом 3 на host2)
Процедура на host2:
- Остановить mysql
- rsync mysql data dir с host1, используя:
rsync -Parvz --exclude="auto.cnf" --exclude="<host1>*" --exclude="binlog.*" <user>@<host1>:/mysql-data/* .
- Запустить mysql
- Очистите журналы репликации и установите 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;
- Подключитесь к 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 ответ
Следующие шаги наконец позволили мне сформировать здоровый трехузловой кластер.
- Установите исправный узел на super_read_only
- Подождите немного, пока завершатся существующие транзакции
- Скопируйте GTID, используя
select @@global.gtid_executed;
- На host2 и host3 установите mysql с нуля
- На host2 и host3 остановите сервер mysql
- rsync данных на оба хоста, используя:
rsync -Parvz --exclude="auto.cnf" --exclude="<host1>*" --exclude="binlog.*" <user>@<host1>:/mysql-data/* .
- Убедитесь, что GTID не изменились на host1
- Запустите mysql на host2 и host3, убедитесь, что данные не повреждены, выбрав в некоторых таблицах
- Используя оболочку mysql, растворите кластер
- Создайте кластер снова, добавив host2 и host3 с самого начала его существования.
Примечание. После распада кластера вам потребуется перезапустить все маршрутизаторы MySQL. Примечание 2: здесь есть некоторая информация для мониторинга:https://dev.mysql.com/doc/refman/5.7/en/group-replication-monitoring.html(Версия 8.x добавляет дополнительные журналы и инструменты)