Reconstruir una réplica desde cero con el plugin CLONE
MySQLReplicaciónComando
-- 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;Qué hace
Copia físicamente por la red los datos InnoDB del donante, reinicia el receptor y traslada el estado de GTID; genera una réplica consistente sin pasos separados de backup, transferencia y restauración.
Cuándo usarlo
Para reconstruir una réplica corrupta, una con GTID errant o una tan retrasada que sus binlogs se han purgado, o para añadir una réplica nueva.
Precaución
Todos los datos del receptor (usuarios incluidos) se sustituyen por la copia del donante; la contraseña de root pasa a ser la del donante. El donante y el receptor necesitan la misma serie de versiones, plataforma y conjunto de plugins (antes de 8.0.37 se requería exactamente la misma versión puntual). El usuario del receptor que ejecuta el comando necesita CLONE_ADMIN. Al terminar el clon mysqld se reinicia solo; sin un supervisor como systemd / mysqld_safe devuelve 3707 'Restart server failed (mysqld is not managed by supervisor process)'. No es un fallo: el clon está completo, arranque el servidor manualmente. El donante soporta mucha carga de IO / red; limítela con clone_max_concurrency y clone_max_data_bandwidth. Con GTID desactivado, use BINLOG_FILE / BINLOG_POSITION de clone_status como SOURCE_LOG_FILE / SOURCE_LOG_POS.
Relacionado
- Configurar una réplica (CHANGE REPLICATION SOURCE)
- Iniciar / detener una réplica
- Ver el estado de la réplica (SHOW REPLICA STATUS)
- Omitir una transacción rota (GTID)
- Monitorear el lag de la réplica y los errores de los workers del applier (performance_schema)
- Ajustar la réplica multi-threaded (replica_parallel_workers)