PostgreSQL, SQL ile çalışan, özgür ve açık kaynak bir nesne-ilişkisel veritabanı yönetim sistemidir. Transaction, ilişkisel kısıtlar, MVCC, JSONB ve farklı indeks türleriyle uygulama verisini yönetir. Resmi proje özeti özellikleri; PostgreSQL License ise kullanım ve dağıtım koşullarını açıklar.
Uzantılar; coğrafi veri, vektör arama veya başka özel iş yükleri için motorun yeteneklerini genişletebilir. Ancak her uzantının lisansı, desteklenen PostgreSQL sürümü ve yükseltme yolu ayrıdır. Çekirdeğin lisansı bütün ekosisteme otomatik uygulanmaz.
PostgreSQL mi MySQL mi?
İki motor da ilişkisel uygulamalarda kullanılabilir. Seçim yalnız özellik sayısına veya genel bir hız sıralamasına dayanmamalıdır.
| Karar alanı | Değerlendirme |
|---|---|
| Hazır uygulama | Uygulama üreticisinin desteklediği motor ve sürüm önceliklidir. |
| Veri modeli | İlişkisel kısıtlar, JSON sorguları, özel veri türleri ve gerekli uzantılar karşılaştırılır. |
| Mevcut SQL | Fonksiyonlar, veri türleri, collation, transaction davranışı ve ORM sorguları pilotta sınanır. |
| Performans | Aynı veri, indeks, donanım ve eşzamanlılıkla gerçek sorgular ölçülür. |
| İşletim | Ekibin yetkinliği, yama süreci, HA ve geri yükleme araçları birlikte değerlendirilir. |
MariaDB / MySQL altyapısından PostgreSQL’e geçiş yalnız bağlantı adresini değiştirmek değildir. Stored procedure, sorgu planı, sequence ve karakter karşılaştırma davranışları uygulama açısından ele alınmalıdır.
PostgreSQL kurulumu öncesi kararlar
Resmi indirme sayfasından işletim sistemine uygun paket kaynağı seçilir. Bu sayfa adım adım kurulum komutları yerine üretim hazırlığına odaklanır.
- Sürüm: Destek süresi, işletim sistemi ve uzantı uyumu doğrulanır; otomatik olarak “en yeninin bir altı” seçilmez.
- Erişim: TLS, kimlik doğrulama, rol yetkileri ve
pg_hba.confkuralları birlikte tasarlanır. Uygulama superuser hesabıyla çalıştırılmaz. - Bağlantı: Uygulama havuzu ve gerekiyorsa PgBouncer pooling modu belirlenir. Sabit bir bağlantı tasarruf oranı vaat edilmez.
- Depolama: Veri, WAL, geçici dosya ve yedek büyümesi ayrı ölçülür.
- İzleme: Sorgu gecikmeleri, lock beklemeleri, bağlantılar, autovacuum ve replikasyon sağlığı izlenir.
Replikasyon ve Patroni’nin rolü
PostgreSQL streaming replication, değişiklik kayıtlarını içeren WAL‘ı (Write-Ahead Log) primary’den standby sunuculara aktarır. Fiziksel replikasyonda standby aynı verinin kopyasını tutar; bu, veriyi parçalara dağıtan sharding değildir. Patroni ise lider seçimi ve failover yönetimini üstlenir; yedekleme veya bağlantı havuzu yerine geçmez.
PostgreSQL replikasyon belgesine göre asenkron aktarımda henüz replica’ya ulaşmamış işlemler failover sırasında kaybolabilir. Senkron aktarımda beklenen onay seviyesi ayrıca önemlidir: WAL’ın alınması, diske yazılması ve sorgulara görünür hâle gelmesi aynı aşama değildir. remote_apply ilgili senkron standby’da uygulanmayı bekler; rastgele bir read replica için genel read-after-write garantisi vermez.
Backup, restore ve PITR
Mantıksal backup, veri ve veritabanı nesnelerini yeniden oluşturulabilir biçimde dışa aktarır; fiziksel backup veritabanı dosyalarını esas alır. Bunlar farklı kurtarma ve taşıma ihtiyaçlarına yanıt verir. PITR, uygun bir base backup ve hedef ana kadar kesintisiz WAL zinciri gerektirir. Yalnız pg_dump almak aynı kurtarma imkânını sağlamaz.
Yedek sıklığı ve saklama süresi RPO/RTO hedeflerine göre belirlenir. Başarılı yedek komutu yeterli kanıt değildir: izole ortamda geri yükleme, veri kontrolü ve uygulama açılışı denenir. Ana sürüm yükseltmesinde pg_upgrade, dump/restore veya uygun replikasyon yöntemi; uzantı uyumu ve geri dönüş koşullarıyla birlikte seçilir.
Yaygın sorunlarda ilk kontrol
- Bağlantı sayısı artıyor: Havuz sızıntısı, uzun transaction ve uygulama eşzamanlılığı incelenir; yalnız limiti yükseltmek çözüm değildir.
- Sorgu yavaşlıyor: Sorgu planı, istatistikler, indeksler ve lock beklemeleri ayrılır; bütün tablolara aynı tuning değeri uygulanmaz.
- Tablo şişiyor: Uzun transaction, autovacuum ilerlemesi ve ölü satır birikimi kontrol edilir.
- Replica geride kalıyor: WAL üretimi, ağ, disk ve standby replay beklemeleri birlikte incelenir.
- WAL diski doluyor: Arşivleme hatası ve slot’ların tuttuğu WAL araştırılır;
pg_waldosyaları elle silinmez.

