Kafka CDC (Debezium), analitik DWH veya mikroservis mantıksal kopyalamalarında PostgreSQL 17'nin yerel slot senkronizasyonu ile yük devretme kesinti süresini (RTO), sıfır veri kaybı garantisini (RPO) ve max_slot_wal_keep_size disk güvenlik sınırlarını hesaplayın.
Veritabanindaki tum INSERT/UPDATE hareketleri Kafka basliklarina anlik streaming yapilir.
sync_replication_slots = on ve failover = true
Primary commit öncesi standby'ın slot LSN onayını beklemesini sağlar.
Kurtarma Süresi Hedefi (RTO)
Veri Kaybı Riski (RPO)
Önerilen max_slot_wal_keep_size
Primary Yazma Gecikmesi
# /etc/postgresql/17/main/postgresql.conf (PRIMARY DUGUMU)
# Mantiksal replikasyon slotlarini standby'a senkronize etme destegi
wal_level = logical
max_replication_slots = 16
max_wal_senders = 16
# Standby sunucunun slot LSN'ini teyit etmesini zorunlu kil (Zero RPO)
synchronized_standby_slots = 'standby_node_1'
# Abone kilitlenirse disk dolup primary'yi cokertmesin:
max_slot_wal_keep_size = 190GBPostgreSQL 16 ve öncesinde, mantıksal replikasyon (Logical Replication) ve CDC (Change Data Capture) slotları yalnızca birincil (primary) sunucuda yerel olarak tutulurdu. Birincil sunucu çöktüğünde ve fiziksel standby (Patroni, repmgr vb. ile) terfi ettirildiğinde, tüm mantıksal replikasyon slotları anında yok olurdu.
Bu durum, terabaytlarca boyuttaki tabloları dinleyen Debezium, Kafka tüketicileri veya analitik kopyaların çökmesine ve sıfırdan günler sürebilecek tam tablo kopyalaması (initial resync) başlatmasına neden olurdu. Bu süre zarfında sistemler çevrimdışı kalır (yüksek RTO) ve veri tutarsızlıkları kaçınılmaz hale gelirdi.
PostgreSQL 17 ile birlikte bu sorun çekirdek seviyesinde çözüldü. Standby sunucuda sync_replication_slots = on parametresi açıldığında, yeni slotsync arka plan işçisi primary'deki mantıksal slotları otomatik olarak kopyalar ve güncel LSN ile standby'da hazır bekletir.
Ayrıca birincil sunucuda synchronized_standby_slots = 'standby_adi' tanımlanarak, standby slot konumunu onaylamadan transaction commit edilmez. Böylece yük devretme anında sıfır veri kaybı (Zero RPO) ve birkaç saniyelik kesintisiz kurtarma süresi (RTO) sağlanır. Ancak abonenin takılması durumunda diskin dolmasını önlemek için max_slot_wal_keep_size sınırının doğru hesaplanması hayatidir.