DBAtlas · Veritabanı operasyon atlası

Taşıma için tutarlı dışa aktarım

Oracle

# Data Pump ile tutarlı mantıksal dışa aktarım (tek SCN'de)
expdp sistem/parola schemas=magaza directory=DIR_DMP \
  dumpfile=magaza_%U.dmp logfile=magaza_exp.log \
  flashback_scn=<scn> parallel=4

# Anlık tutarlılık için o anki SCN:
# SELECT current_scn FROM v$database;
# Alternatif: FLASHBACK_TIME=SYSTIMESTAMP

Data Pump (expdp) taşıma için standart mantıksal dışa aktarım aracıdır. Okuma-tutarlılığı için FLASHBACK_SCN=<scn> (veya FLASHBACK_TIME) verilerek tüm tablolar tek bir SCN'de tutarlı alınır; canlı sistemde bu kritiktir. PARALLEL ile hızlandırılır, %U çoklu dosya üretir.

PostgreSQL

# Sıkıştırılmış özel (custom) biçimde tek dosya (paralel restore edilebilir)
pg_dump -Fc -Z6 -f magaza.dump magaza

# Dizin biçimi (paralel dump + paralel restore):
pg_dump -Fd -j4 -f magaza_dir magaza

# Tüm küme + rol/tablespace için:
# pg_dumpall --globals-only > roller.sql

pg_dump -Fc (custom) veya -Fd (directory) biçimi taşıma için tercih edilir; her ikisi de pg_restore ile seçmeli/paralel yükleme sağlar. pg_dump tek transaction içinde çalıştığından çıktı otomatik olarak tutarlı bir snapshot'tır. Rol ve tablespace gibi küme-genel nesneler için pg_dumpall --globals-only ayrıca alınır.

MySQL

# InnoDB için tutarlı, kilitsiz dışa aktarım
mysqldump --single-transaction --quick --routines --triggers --events \
  --source-data=2 magaza > magaza.sql

# Not: eski sürümlerde --source-data yerine --master-data=2 kullanılır.
# Paralel ve hızlı alternatif: mydumper -B magaza -o ./yedek --threads 4

InnoDB'de --single-transaction tek tutarlı snapshot sağlar ve tabloları kilitlemez. --source-data=2 (eski adı --master-data=2) çıktının başına, replikasyon/CDC başlatmak için gereken binlog konum/GTID bilgisini yorum olarak yazar; kesintisiz geçişte bu şarttır. Büyük veri için mydumper paralel çalışır.

SQL Server

-- Fiziksel taşıma için tam yedek (aynı/uyumlu sürüme):
BACKUP DATABASE magaza TO DISK = 'C:\yedek\magaza.bak' WITH COMPRESSION, CHECKSUM;

-- Taşınabilir/sürümden bağımsız mantıksal dışa aktarım (BACPAC = şema+veri):
-- sqlpackage /Action:Export /SourceConnectionString:"..." /TargetFile:magaza.bacpac

-- Tek tablo için: bcp magaza.dbo.musteri out musteri.dat -n -S sunucu -T

Aynı/daha yeni SQL Server'a taşımada en güvenilir yol BACKUP ... RESTORE'dur (CHECKSUM ile bütünlük doğrulanır). Sürümden/platformdan bağımsız veya Azure SQL taşımasında SqlPackage /Action:Export ile şema+veriyi tek .bacpac dosyasına almak tercih edilir. Tekil tablolar için bcp kullanılır.

MongoDB

# İkili (BSON) tutarlı dışa aktarım; oplog ile nokta-tutarlılığı
mongodump --uri="mongodb://kaynak:27017" \
  --oplog --out=./yedek --numParallelCollections=4

# --oplog dump süresince oluşan değişiklikleri yakalar (replica set gerekir);
# yalnızca TAM dump ile çalışır, --db / --collection ile birlikte kullanılamaz.
# Geri yüklerken mongorestore --oplogReplay ile tek noktaya oturtulur.
# Tek veritabanı gerekiyorsa: --db=magaza ile (oplog'suz) alın ya da geri yüklemede --nsInclude='magaza.*' kullanın.

mongodump taşıma için standart ikili (BSON) dışa aktarımdır. Replica set'te --oplog seçeneği, dump devam ederken yazılan değişiklikleri oplog'dan yakalayarak tutarlı bir zaman noktası sağlar (mongorestore --oplogReplay ile eşleşir); bu seçenek yalnızca tam dump'ta geçerlidir. Büyük kümede küme-düzeyi taşıma için mongosync/canlı araçlar daha uygundur.

Redis

# Arka planda RDB snapshot'ı oluştur (bloklamadan)
redis-cli BGSAVE
# Bitişi kontrol et:
redis-cli INFO persistence | grep rdb_bgsave_in_progress

# Oluşan dosyayı taşı (yol: CONFIG GET dir + dbfilename)
# örn. /var/lib/redis/dump.rdb  ->  hedef sunucuya kopyala

Redis'te tutarlı dışa aktarım RDB snapshot'ıdır. BGSAVE ana süreci bloklamadan arka planda fork ile tutarlı bir dump.rdb üretir (SAVE ise bloklar, kullanılmamalı). Dosya yolu CONFIG GET dir ve dbfilename ile bulunur; bu dump.rdb hedef sunucunun veri dizinine kopyalanarak taşınır.

Elasticsearch

# 1) Yedek deposu tanımla (paylaşılan dosya sistemi / S3)
PUT _snapshot/tasima_deposu
{ "type": "fs", "settings": { "location": "/mnt/es_yedek" } }

# 2) Tutarlı snapshot al
PUT _snapshot/tasima_deposu/goc_1?wait_for_completion=true
{ "indices": "musteri,siparis", "include_global_state": false }

Elasticsearch'te taşıma için tutarlı dışa aktarım yöntemi snapshot'tır. Önce bir depo (fs, S3, GCS vb.) tanımlanır, sonra snapshot alınır; snapshot artımlıdır ve alındığı andaki tutarlı durumu yakalar. Küçük veri/tek index için elasticdump da kullanılabilir ama snapshot standarttır.

DBAtlas'ta aç →