Auteur de la discussion
#1
Tarihsel notlar ve günlük iş akışlarında yedekleme ile geri yükleme arasındaki farklar sık karşılaşılan kafa karışıklıklarına yol açabilir. Bu yazı, pg_restore komutunun nasıl çalıştığını, hangi yedekleme formatlarını desteklediğini ve tipik geri yükleme senaryolarını adım adım açıklayarak, somut örneklerle ilerler.
Geri yükleme formatları ve hangi durumda hangi araç kullanılır
Temel kullanım kalıpları
Geri yükleme sırasında karşılaşılan pratik ayarlar
Tipik sorunlar ve çözümler
Kapanış
PostgreSQL geri yükleme süreçleri, yedek formatı ve hedef gereksinimleri ile şekillenir. pg_restore’un esnek parametre seti, farklı senaryolara uyum sağlamayı mümkün kılar; doğru kombinasyonu seçmek güvenli ve güvenilir geri yüklemenin anahtarıdır.
TARTIŞMA: pg_restore kullanımıyla ilgili özel bir senaryo veya karşılaştığınız hatayı paylaşabilir misiniz? Hangi formatı kullandınız ve hangi parametrelerle çözüme ulaştınız?
Geri yükleme formatları ve hangi durumda hangi araç kullanılır
- pg_dump ile oluşturulan yedekler genellikle iki formatta olabilir: SQL komutları içeren metin dosyası ve özel (custom) format. Metin dosyası, restore sırasında hedef veritabanında CREATE/DATA DDL’lerini doğrudan uygular; özel format ise daha esnek ve sıkıştırılmış, verileri tablo ve veritabanı seviyesinde yeniden düzenlemeye olanak tanır.
- pg_restore, özel ve tar formatlı yedekleri yüklemek için idealdir. Ayrıca metin formatındaki yedekler için psql ile geri yükleme yapılır, çünkü pg_restore bu formatı doğrudan işlemez.
Temel kullanım kalıpları
- Özet olarak: pg_restore [seçenekler] yedekdosyası
- En yaygın senaryo: bir veritabanını tamamen yeniden oluşturmak
- yeni bir veritabanı oluşturun: createdb yeni_veritabani
- geri yüklemeyi uygulayın: pg_restore -C -d yeni_veritabani yedek.dump
- -C: veritabanını oluşturmayı dene (CREATE DATABASE)
- -d hedef veritabanı: geri yüklemenin hedef veritabanı
- Belirli bir şema veya tabloya odaklanma
- pg_restore -d hedef_veritabani -n hedef_shema yedek.dump
- -n: şema filtreleme (birden fazla şema için -n şema1 -n şema2)
- -t: tablo filtreleme (-t tablom1 -t tablom2)
Geri yükleme sırasında karşılaşılan pratik ayarlar
- Veri ve döküm objelerini ayrı ayrı geri yüklemek isteyenler için:
- pg_restore -s yedek.dump > schema_only.sql
- pg_restore -a yedek.dump > data_only.sql
- İşlem güncellenmesi veya sadece veri içeren geri yükleme için:
- pg_restore -a -c yedek.dump
- -a: sadece veriyi geri yükler
- -c: mevcut objeleri siler ve yeniden oluşturur
- Paralellik ve performans:
- pg_restore -j 4 yedek.dump
- -j: paralel iş parçacığı sayısı; hedef makinadaki CPU ve I/O kapasitesine göre ayarlanmalı
Tipik sorunlar ve çözümler
- Veritabanı sürümü uyumsuzluğu: pg_dump ile alınan yedek, hedef PostgreSQL sürümüyle uyumlu olmalıdır; çok eski veya çok yeni sürüm arasında path mismatchler olabilir.
- Veri bozulması ihtimali: özel formatlı yedeklerin verify edilmesi için pg_restore -l yedek.dump ile içeriğin listesini kontrol edin ve gerektiğinde test veritabanında deneme geri yüklemesi yapın.
- Oturum ve kullanıcı yetkileri: geri yüklerken veritabanı sahibi ve rol eşleşmeleri önemlidir; gerektiğinde -O (sahibi koru) ve -x (kısıtlamaları atlama) seçeneklerini değerlendirin.
Kapanış
PostgreSQL geri yükleme süreçleri, yedek formatı ve hedef gereksinimleri ile şekillenir. pg_restore’un esnek parametre seti, farklı senaryolara uyum sağlamayı mümkün kılar; doğru kombinasyonu seçmek güvenli ve güvenilir geri yüklemenin anahtarıdır.
TARTIŞMA: pg_restore kullanımıyla ilgili özel bir senaryo veya karşılaştığınız hatayı paylaşabilir misiniz? Hangi formatı kullandınız ve hangi parametrelerle çözüme ulaştınız?
