İçeriğe atla
VDS Panel
VDS Panel
Sunucu Yönetimi
Veritabanı 22 Mart 2026 · 8 dk okuma

PostgreSQL Otomatik Kurulum: Connection Pool ve Yedekleme Rehberi

VDS Panel ile PostgreSQL veritabanı oluşturma, PgBouncer connection pool kurulumu, otomatik yedekleme ve restore süreçleri. Manuel psql komutlarına veda.

#postgresql #pgbouncer #veritabanı #backup #restore
VDS Panel
VDS Panel Ekibi
Ürünü geliştiren ekip

PostgreSQL, açık kaynak veritabanı dünyasının kral tacı. Güvenilir, ölçeklenebilir, standartlara bağlı. Ancak production’da verimli kurulum, connection pool ayarı, yedekleme ve restore süreci bilgi ister. Tek bir apt install postgresql komutundan çok daha fazlası.

Bu yazıda VDS Panel’in PostgreSQL’i nasıl otomatik yönettiğini, PgBouncer ile nasıl ölçeklediğini ve yedekleme stratejisini anlatacağız.

Bir bakışta
~4 sn
DB + user + izin kurulumu
500+
PgBouncer ile paralel bağlantı
15 dk
Otomatik yedek aralığı
AES-256
Yedek şifreleme

Yeni proje = yeni veritabanı

Geleneksel akışta PostgreSQL yapılandırması:

-- psql ile root olarak
CREATE USER myapp_user WITH PASSWORD 'güçlü_parola';
CREATE DATABASE myapp_production OWNER myapp_user;
GRANT ALL PRIVILEGES ON DATABASE myapp_production TO myapp_user;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO myapp_user;

Sonra uygulamanızın env’ine:

DATABASE_URL=postgres://myapp_user:güçlü_parola@localhost:5432/myapp_production

VDS Panel’de: Projeyi eklerken “PostgreSQL ekle” kutusunu işaretleyin. Gerisi otomatik:

  1. 01
    Kullanıcı oluşturulur
    myapp_user adında user, 32 karakter güçlü parolayla. Parola DB dışında tekrar gösterilmez.
  2. 02
    Veritabanı oluşturulur
    myapp_production adında DB, owner olarak yeni user atanır.
  3. 03
    Public schema izinleri verilir
    PG 15+ için DEFAULT PRIVILEGES de set edilir. Liquibase/Flyway migration'ları sorunsuz çalışır.
  4. 04
    DATABASE_URL env'e enjekte edilir
    Uygulama container'ı başlarken connection string'i process environment'ında görür. Dosyada veya git'te hiçbir yere yazılmaz.
  5. 05
    PgBouncer connection pool kaydedilir
    High-throughput proje ise PgBouncer üzerinden bağlantı yönlendirilir. Aşağıda detay.

PgBouncer neden gerekli?

PostgreSQL her bağlantı için ayrı bir process forklar. Bir Node.js API 100 eşzamanlı istek alıyorsa 100 PG process olur. Bu memory ve context switch yükü yaratır.

PgBouncer, bağlantıları havuzlar. 1000 uygulama bağlantısını 20-50 gerçek PG bağlantısına eşler. Sonuç:

5-10×
daha fazla throughput
PgBouncer transaction pooling modu ile aynı PG kapasitesinde.

VDS Panel yüksek trafikli projeler için otomatik PgBouncer kurar. Bağlantı URL’i:

postgres://myapp_user:pass@pgbouncer:6432/myapp_production?pool_mode=transaction

Uygulama farkında bile değil; aynı arayüzle kullanıyor ama arkada connection pool çalışıyor.

Transaction pooling sınırları

PgBouncer’ın transaction pool mode’u prepared statement ve session değişkenlerini desteklemez. Uygulamanız SET ... veya PREPARE ... kullanıyorsa session mode’u kullanın (biraz daha düşük throughput ama tam uyumluluk).

Otomatik yedekleme

VDS Panel veritabanınızı 15 dakikada bir kontrol eder ve günlük tam yedek alır:

  • pg_dump —format=custom ile veritabanı dump’ı
  • age veya gpg ile şifreleme (public key ile)
  • Opsiyonel S3 veya R2 upload (disaster recovery)
  • 30 gün retention, eski yedekler otomatik temizlenir
  • Başarısız upload’da yerel dosya korunur

Panel’den yedek listesine bakabilir, herhangi bir yedeği restore edebilirsiniz.

Yedek şifreleme anahtarı

age public key’i panele yüklersiniz. Private key sadece sizde kalır. Panel veya saldırgan bile yedekleri decrypt edemez. Anahtarı mutlaka offline yedekleyin; kaybederseniz yedeklerinize erişiminizi kaybedersiniz.

Restore: geriye dönüş

Bir migration yanlış gitti, veri bozuldu. Panelden:

  1. “Veritabanı” → “Yedekler” sekmesi
  2. İstediğiniz yedek tarihini seçin
  3. “Restore” butonu
  4. Panel:
    • Mevcut bağlantıları kapatır (maintenance mode)
    • Mevcut veriyi .bak olarak saklar
    • Yedekten yeni veritabanı oluşturur
    • Uygulamayı yeni DB’ye yönlendirir
    • Bağlantıları açar

Toplam süre ~30 saniye (küçük DB’ler için). Büyük DB’ler için birkaç dakika.

Migration yönetimi

Liquibase, Flyway, Prisma, Drizzle, TypeORM, hangi migration tool’unu kullanırsanız kullanın, panel Liquibase/Flyway tablo ownership sorunlarını otomatik çözer:

  • Liquibase/Flyway postgres superuser ile tablo yaratır
  • Uygulama user’ı bu tablolara erişemez (ownership sorunu)
  • Panel bunu algılar, ownership’i otomatik transfer eder

Aksi halde “permission denied for table …” hatası alırsınız; panel bu yaygın sorunu çözer.

Kubernetes üzerinde PostgreSQL (CNPG)

K3s modülü aktifse, production-grade PostgreSQL için CNPG (CloudNativePG operator) kullanılabilir. Artıları:

  • Otomatik failover (primary çökerse standby devralır)
  • Streaming replication (read replica’lar)
  • Hot backup (downtime’sız yedek)
  • Monitoring entegrasyonu
  • Scheduled maintenance

VDS Panel K3s modülü ile bir tıkla CNPG kurar. High-availability isteyen production senaryoları için idealdir.

Monitoring

Her PostgreSQL instance için panel:

  • Canlı bağlantı sayısı (kullanılan / max)
  • Query performance (yavaş sorgu tespiti)
  • Disk kullanımı
  • Table size’ları
  • Replication lag (varsa)
  • Backup durumu

log_min_duration_statement = 500 varsayılan; 500ms’den uzun sorgular log’a düşer. Yavaş query’leri hemen fark edersiniz.

İzolasyon

Panel tarafında her proje kendi veritabanında çalışır:

  • A projesi B projesinin DB’sine erişemez
  • Ayrı user, ayrı parola, ayrı schema
  • Yedekler ayrı dosyalarda, farklı anahtarlarla şifrelenebilir
  • Silme işlemi sadece o projenin DB’sini etkiler

Multi-tenant hosting senaryoları için bu izolasyon kritik.

Sonuç

PostgreSQL production’ı, manuel yapılırsa saatlerce süren bir iştir: user/DB oluşturma, izin atama, connection pool kurma, yedekleme scheduling’i, restore testi, monitoring. VDS Panel bu adımları otomatik halleder ve panel arayüzünden yönetmenize izin verir.

İlk projenizi eklerken “PostgreSQL ekle” kutusunu işaretlemek yeterli. Gerisi 4 saniye içinde tamamlanır. Veritabanı modülü detayları için ana sayfaya bakabilir veya iletişim formundan kurulum senaryonuzu paylaşabilirsiniz.

Kendi sunucunuzda denemek ister misiniz?

İletişim formundan ulaşın, kullanım senaryonuza uygun lisans + kurulum planını birlikte hazırlayalım.

Hazır olduğunuzda buradayız

Kendi sunucunuzda modern deploy deneyimi, bir iletişim mesajı uzakta.

Kullanım senaryonuzu anlayıp size uygun lisans ve kurulum planını hazırlayalım. Ortalama yanıt süremiz 24 saatin altında.