DBAtlas · Atlas de operaciones de bases de datos

Dump / load en paralelo con MySQL Shell (util.dumpInstance, loadDump)

MySQLBackup y PITR

Comando

# Parallel, zstd-compressed, consistent instance dump
mysqlsh backup@db1:3306 -- util dump-instance /backup/dump_20261008 --threads=8 --compression=zstd --consistent=true
# Single schema
mysqlsh backup@db1:3306 -- util dump-schemas shop --outputUrl=/backup/shop_20261008 --threads=8

# Load: local_infile must be temporarily ON on the target
mysql -h db2 -u root -p -e "SET GLOBAL local_infile = ON"
mysqlsh root@db2:3306 -- util load-dump /backup/dump_20261008 --threads=8 --skipBinlog=false
mysql -h db2 -u root -p -e "SET GLOBAL local_infile = OFF"

Qué hace

Divide las tablas en chunks y las vuelca / carga con muchos threads; tanto el volcado como la restauración son muchas veces más rápidos que mysqldump. El directorio de volcado guarda las coordenadas de GTID y binlog en @.json.

Cuándo usarlo

Para backups lógicos de cientos de GB, migraciones lógicas durante upgrades y traslados de on-prem → cloud (RDS, HeatWave).

Precaución

--consistent=true toma un breve global read lock / backup lock; las escrituras esperan si hay una consulta larga en ejecución. loadDump usa LOAD DATA LOCAL, por lo que el destino necesita local_infile=ON, que debería desactivarse después. Una carga interrumpida se reanuda desde donde se detuvo (archivo de progreso); use --resetProgress para empezar de nuevo. Las cuentas de usuario no se cargan por defecto (--loadUsers=true). --skipBinlog=true deshabilita el binlog durante la carga; manténgalo en false si el destino tiene réplicas.

Abrir en DBAtlas →

Relacionado