Parallel dump / load with MySQL Shell (util.dumpInstance, loadDump)
MySQLBackup & PITRCommand
# 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"What it does
Splits tables into chunks and dumps / loads them with many threads; both dump and restore are many times faster than mysqldump. The dump directory stores GTID and binlog coordinates in @.json.
When to use it
For logical backups of hundreds of GB, logical migration during upgrades, and on-prem → cloud (RDS, HeatWave) moves.
Caution
--consistent=true takes a brief global read lock / backup lock; writes wait if a long query is running. loadDump uses LOAD DATA LOCAL, so the target needs local_infile=ON, which should be turned off afterwards. An interrupted load resumes from where it stopped (progress file); use --resetProgress to start over. User accounts are not loaded by default (--loadUsers=true). --skipBinlog=true disables binlogging during the load; keep it false if the target has replicas.