Восстановление mysqldump на машине внутри группы репликации, как реплицировать восстановление на машинах, которые позже присоединяются к группе?
Возникли небольшие проблемы в настоящее время с групповой репликацией в MySQL 5.7. Я в основном настроил одну виртуальную машину внутри группы репликации. Я запускаю файл.sql, сгенерированный mysqldump на этом компьютере, и все базы данных / таблицы / данные копируются, как и ожидалось.
Затем я добавляю пару дополнительных машин в группу репликации (отношения мастер-мастер). Эти машины отображаются как ONLINE в таблице performance_schema.replication_group_members, но при удалении каждого из них я обнаруживаю, что ни одна из баз данных или таблиц не реплицирована на них. Если я добавлю новую таблицу на любой компьютер, она будет реплицироваться по всей группе, как и ожидалось, но никакая информация из mysqldump не появится на двух новых машинах.
Я чувствую, что, может быть, мне не хватает какой-то важной функции mysqldumps или групповой репликации, но я пытаюсь понять, где искать. У кого-нибудь есть предложения?
Используемая команда mysqldump (на машине, которая не была частью группы репликации):
mysqldump -u root -p --all-databases --add-drop-table --add-drop-database --routines --events --force > $homepath/dumps/$filename
Код, используемый для настройки групповой репликации
mysql -u root -ppass <<EOF
SET SQL_LOG_BIN=0;
CREATE USER 'repl'@'%' IDENTIFIED BY 'pass';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;
SET SQL_LOG_BIN=1;
CHANGE MASTER TO MASTER_USER='repl', MASTER_PASSWORD='pass' FOR CHANNEL 'group_replication_recovery';
INSTALL PLUGIN group_replication SONAME 'group_replication.so';
SET GLOBAL group_replication_bootstrap_group=ON; # On 1st VM only
START GROUP_REPLICATION;
SET GLOBAL group_replication_bootstrap_group=OFF; # On 1st VM only
EOF
Обновление 09/03/18
Похоже, что mysqldump отключает бинарное ведение журнала по умолчанию. Это означает, что каждая команда в скрипте не отслеживается и поэтому не будет реплицироваться ни на один из новых vms, присоединяющихся к группе. Вы можете изменить это поведение, включив --set-gtid-purged=OFF
в команде mysqldump. У меня все еще есть проблемы с репликацией (кажется, что она застревает сейчас при копировании базы данных mysql), но новые виртуальные машины, по крайней мере, сейчас пытаются догнать оригинальную. Отправлю обратно, если я сделаю дальнейший прогресс.