Veritabanı sürekli WAL arşivlemesinde yerel diskin %100 dolmasını veya sürpriz S3 faturalarını engelleyin; Zstandard sıkıştırma ile Point-in-Time Recovery (PITR) depolama hacmini ve pgbackrest.conf kurallarını hesaplayın.
pgBackRest, saklanan en eski tam yedeğe (full backup) bağlı olan tüm WAL dosyalarını geri yükleme garantisi için saklar.2 haftalık yedek seçildiğinde toplam 14 günlük kesintisiz WAL akışımuhafaza edilir. Zstandard (zst) sıkıştırması sayesinde veritabanınız ve WAL dosyaları %64 oranında küçültülerekS3 depolama faturasından tasarruf sağlanır.
Full (72G) + Diff (43G) + WAL (101G)
Geriye dönük herhangi bir saniyeye tam dönüş garantisi
Cloudflare R2 (Sıfır Egress)
Yerel diskin %100 dolmasını önleyen kontrol noktası sınırı
# /etc/pgbackrest/pgbackrest.conf # 2026 PostgreSQL Yüksek Performanslı S3 ve Zstandard Yedekleme Yapılandırması [global] repo1-type=s3 repo1-s3-bucket=sirketiniz-postgres-backups repo1-s3-endpoint=<hesap_id>.r2.cloudflarestorage.com repo1-s3-region=auto repo1-s3-key=AKIA_ORNEK_ACCESS_KEY repo1-s3-key-secret=ORNEK_SECRET_KEY repo1-path=/pgbackrest-repo # Saklama (Retention) Politikası repo1-retention-full=2 repo1-retention-diff=7 repo1-retention-archive-type=full # Sıkıştırma ve Paralellik (Zstandard 2.8x Tasarruf) compress-type=zst compress-level=3 process-max=4 # Loglama ve Güvenlik log-level-console=info log-level-file=detail start-fast=y [main] pg1-path=/var/lib/postgresql/data
Geleneksel pg_dump mantığı, tüm veritabanını metin veya özel formatta dışa aktarır. 100 GB ve üzeri veritabanlarında saatler sürer, sunucu CPU ve diskini aşırı yorar ve en önemlisi son alınan yedekten sonraki verileri kurtaramaz (RPO = 24 saat).pgBackRest ise fiziksel blok düzeyinde ve sürekli WAL (Write-Ahead Logging) arşivleme ile çalışır; felaket anında veritabanınızı tam çöktüğü saniyeye (Point-in-Time Recovery - PITR) sıfır veri kaybıyla geri döndürür.
pgBackRest, güvenli bir PITR kurtarma zinciri sağlamak adına sistemde saklanan en eski tam yedeğin (full backup) tarihinden itibaren üretilen tüm 16 MB'lık WAL segmentlerini S3'te muhafaza eder. Eğer 2 haftada bir tam yedek alıyorsanız ve sistem günde 20 GB WAL üretiyorsa, S3'te yalnızca WAL dosyaları için 300-500 GB alan işgal edilir. Zstandard (compress-type=zst) algoritması kullanılarak bu dosyalar ortalama %64 oranında sıkıştırılır ve Cloudflare R2 veya AWS S3 faturası minimize edilir.
Arşiv komutu (archive_command) internet kesintisi veya S3 API hatası nedeniyle çalışamazsa, PostgreSQL hiçbir WAL dosyasını silmez ve yerel pg_wal klasöründe biriktirir. Diskin %100 dolup veritabanının aniden kapanmasını önlemek için yerel diskte en az 3 katlık bir tampon alan bırakılmalı ve PostgreSQL'in max_wal_size parametresi dikkatle ayarlanmalıdır.