Bağlantı fırtınası (too many connections)
'too many connections', 'remaining connection slots reserved', ORA-00018 aldın; yeni bağlantılar reddediliyor. Kaynağı bul, acil rahatlat, kalıcı çöz.
Durumu ölç: kaç bağlantı, ne kadarı aktif?
Önce toplam bağlantı, limit ve aktif/idle dağılımına bak.
SELECT status, COUNT(*) FROM v$session WHERE type='USER' GROUP BY status;
SELECT name, value FROM v$parameter WHERE name IN ('processes','sessions');- Çoğu bağlantı idle / idle in transaction
- Çoğu aktif — kaynağı bulmalıyım
Kim/nereden? Bağlantıları kaynağa göre grupla
Genelde tek bir uygulama sunucusunun pool'u patlamıştır ya da bağlantı sızıntısı vardır. Host/kullanıcı/uygulama bazında dağılıma bak.
SELECT client_addr, usename, application_name, count(*) FROM pg_stat_activity GROUP BY 1,2,3 ORDER BY 4 DESC;- Tek bir uygulama/host bağlantıları patlatmış (pool)
- Yük gerçekten arttı, hepsi meşru ve aktif
Kök neden: Idle bağlantı yığını / sızıntı
Bağlantılar açılıp kapatılmıyor ya da 'idle in transaction' bırakılıyor; slotları boşuna tutuyorlar.
Kök neden: Uygulama pool'u patlamış
Bir uygulama sunucusunun connection pool'u sınırsız/çok büyük ya da sızdırıyor. Bağlantıları o üretiyor.
Kök neden: Gerçek yük artışı
Bağlantılar meşru ve aktif; kapasite gerçekten yetmiyor.