MySQL Shell ile paralel dump / load (util.dumpInstance, loadDump)
MySQLYedekleme & PITRKomut
# Paralel, zstd sikistirmali, tutarli instance dump
mysqlsh backup@db1:3306 -- util dump-instance /backup/dump_20261008 --threads=8 --compression=zstd --consistent=true
# Tek sema
mysqlsh backup@db1:3306 -- util dump-schemas shop --outputUrl=/backup/shop_20261008 --threads=8
# Yukleme: hedefte local_infile gecici olarak acik olmali
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"Ne yapar?
Tabloları chunk'lara bölerek çok thread'le döker ve yükler; mysqldump'a göre hem dump hem restore kat kat hızlıdır. Dump dizini GTID ve binlog koordinatlarını @.json dosyasında tutar.
Ne zaman kullanılır?
Yüzlerce GB'lık mantıksal yedekte, sürüm yükseltmede mantıksal taşımada, on-prem → cloud (RDS, HeatWave) geçişinde.
Dikkat
--consistent=true kısa bir global read lock / backup lock alır; uzun süren sorgu varsa yazmalar bekler. loadDump LOAD DATA LOCAL kullanır; hedefte local_infile=ON gerekir ve iş bitince kapatılmalıdır. Yükleme yarıda kalırsa aynı komut kaldığı yerden devam eder (progress dosyası); baştan başlamak için --resetProgress. Kullanıcı hesapları varsayılan olarak yüklenmez (--loadUsers=true). --skipBinlog=true yükleme sırasında binlog yazmayı keser; hedefin replikaları varsa false bırak.