DBAtlas · Veritabanı operasyon atlası

mysqldump ile tutarlı, GTID bilgili mantıksal yedek al

MySQLYedekleme & PITR

Komut

mysqldump -h db1 -u backup -p \
  --single-transaction --source-data=2 --set-gtid-purged=ON \
  --routines --events --triggers --hex-blob \
  --all-databases | gzip > /backup/full_$(date +%F_%H%M).sql.gz

# Geri yukleme: hedefte GTID setleri cakismamali
zcat /backup/full_2026-10-08_0200.sql.gz | mysql -h db2 -u root -p

Ne yapar?

InnoDB tablolarını tek bir consistent snapshot içinde döker; dosyanın başına binlog dosya / pozisyonunu (yorum olarak) ve SET @@GLOBAL.GTID_PURGED satırını yazar. Böylece yedek hem replika kurmak hem de binlog ile PITR yapmak için başlangıç noktası olur.

Ne zaman kullanılır?

Birkaç on GB'a kadar veritabanlarında, şema / tablo taşımada ve sürümler arası mantıksal geçişte.

Dikkat

--single-transaction yalnız InnoDB için tutarlıdır; MyISAM tablolar tutarsız gelir. Dump sırasında aynı tabloda DDL (ALTER / RENAME / TRUNCATE) çalışırsa dump hata verir veya tablo eksik gelir. --source-data / --set-gtid-purged başlangıçta kısa bir global read lock alır (RELOAD yetkisi gerekir); o anda uzun süren bir sorgu varsa lock beklerken tüm yazmalar durur. Kısmi dump (--databases) yine tüm GTID'leri yazar; başka bir sunucuya parça taşırken --set-gtid-purged=OFF kullan. Dump tek thread'lidir; büyük veride MySQL Shell dump veya XtraBackup tercih et.

DBAtlas'ta aç →

İlgili