DBAtlas · Atlas de operações de banco de dados

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

MySQLBackup e 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"

O que faz

Divide as tabelas em chunks e faz o dump / load com muitas threads; tanto o dump quanto o restore são muitas vezes mais rápidos que o mysqldump. O diretório do dump guarda as coordenadas de GTID e binlog em @.json.

Quando usar

Para backups lógicos de centenas de GB, migração lógica durante upgrades e migrações on-prem → nuvem (RDS, HeatWave).

Atenção

--consistent=true obtém um breve global read lock / backup lock; as gravações esperam se uma consulta longa estiver rodando. O loadDump usa LOAD DATA LOCAL, então o destino precisa de local_infile=ON, que deve ser desligado depois. Um load interrompido retoma de onde parou (arquivo de progresso); use --resetProgress para recomeçar. As contas de usuário não são carregadas por padrão (--loadUsers=true). --skipBinlog=true desabilita o binlog durante o load; mantenha false se o destino tiver réplicas.

Abrir no DBAtlas →

Relacionados