Пересоздать реплику с нуля через плагин CLONE
MySQLРепликацияКоманда
-- Donor (healthy replica or source)
INSTALL PLUGIN clone SONAME 'mysql_clone.so';
CREATE USER 'clone_donor'@'%' IDENTIFIED BY 'Cl0ne#Donor';
GRANT BACKUP_ADMIN ON *.* TO 'clone_donor'@'%';
-- Recipient (replica to rebuild; its data is replaced)
INSTALL PLUGIN clone SONAME 'mysql_clone.so';
SET GLOBAL clone_valid_donor_list = 'db1:3306';
CLONE INSTANCE FROM 'clone_donor'@'db1':3306 IDENTIFIED BY 'Cl0ne#Donor';
-- After the restart: verify and start replication
SELECT STATE, ERROR_NO, BINLOG_FILE, BINLOG_POSITION, GTID_EXECUTED FROM performance_schema.clone_status;
SELECT STAGE, STATE, ROUND(DATA / 1024 / 1024) AS data_mb FROM performance_schema.clone_progress;
CHANGE REPLICATION SOURCE TO SOURCE_HOST = 'db1', SOURCE_PORT = 3306, SOURCE_USER = 'repl', SOURCE_PASSWORD = 'Repl#2024', SOURCE_AUTO_POSITION = 1, SOURCE_SSL = 1;
START REPLICA;Что делает
Физически копирует данные InnoDB донора по сети, перезапускает получателя и переносит состояние GTID; создаёт согласованную реплику без отдельных шагов бэкапа, передачи и восстановления.
Когда использовать
Чтобы пересоздать повреждённую реплику, реплику с errant GTID или настолько отставшую, что её binlog уже удалены, либо чтобы добавить новую реплику.
Внимание
Все данные получателя (включая пользователей) заменяются копией донора; пароль root становится паролем донора. Донору и получателю нужны одинаковые серия релизов, платформа и набор плагинов (до 8.0.37 требовался точно такой же релиз). Пользователю на получателе, выполняющему команду, нужен CLONE_ADMIN. По завершении клонирования mysqld перезапускается сам; без супервизора, такого как systemd / mysqld_safe, возвращается 3707 'Restart server failed (mysqld is not managed by supervisor process)'. Это не сбой: клонирование завершено, запустите сервер вручную. Донор испытывает высокую нагрузку IO / сети; ограничьте её через clone_max_concurrency и clone_max_data_bandwidth. При выключенном GTID используйте BINLOG_FILE / BINLOG_POSITION из clone_status как SOURCE_LOG_FILE / SOURCE_LOG_POS.
Связанные материалы
- Настроить реплику (CHANGE REPLICATION SOURCE)
- Запустить / остановить реплику
- Просмотреть состояние реплики (SHOW REPLICA STATUS)
- Пропустить сломанную транзакцию (GTID)
- Мониторинг отставания реплики и ошибок рабочих процессов applier (performance_schema)
- Настроить многопоточную реплику (replica_parallel_workers)