Oracle ORA-00020: Process Sınırı Dolduğunda Acil Müdahale
Processes sınırı dolduğunda sorumlu oturumları bulur, bağlantıları kontrollü azaltır ve yeniden başlatma gerektiren kalıcı kapasite ayarını planlar.
Operasyonel Güvenlik ve Risk Uyarısı
Bu runbook müdahale adımları içerir; birçok adım yazma etkilidir (KILL, terminate, DROP, RESIZE). Önce test ortamında deneyin, üretimde adımları sırayla ve doğrulayarak uygulayın.
1. Belirti / Symptom
- `ORA-00020: maximum number of processes exceeded` ve başarısız yeni bağlantılar; M37 kritik.
- Uygulama bağlantı havuzları zaman aşımına uğrar. Listener ve alert log'da bağlantı hataları görülebilir.
2. Etki / Impact
Yeni dedicated-server süreçleri oluşturulamaz; mevcut işlemler sürse de yeni iş yükü kabul edilemez. RAC'te sorun instance bazlıdır ve servis yönlendirmesini etkileyebilir.
3. Teşhis / Diagnosis
SELECT inst_id, resource_name, current_utilization, max_utilization, limit_value
FROM gv$resource_limit
WHERE resource_name IN ('processes','sessions')
ORDER BY inst_id, resource_name;
SELECT inst_id, username, machine, program, status, COUNT(*) AS sessions
FROM gv$session
WHERE type = 'USER'
GROUP BY inst_id, username, machine, program, status
ORDER BY sessions DESC FETCH FIRST 30 ROWS ONLY;4. Müdahale / Response
SELECT inst_id, sid, serial#, username, machine, last_call_et
FROM gv$session
WHERE type='USER' AND status='INACTIVE' AND last_call_et > 1800
ORDER BY last_call_et DESC;
-- Tek instance: ALTER SYSTEM KILL SESSION 'sid,serial#' IMMEDIATE;
-- RAC: ALTER SYSTEM KILL SESSION 'sid,serial#,@inst_id' IMMEDIATE;Büyük açık transaction'ın rollback'i uzun sürebilir; **tüm INACTIVE oturumları körlemesine öldürmeyin**.
ALTER SYSTEM SET processes=1200 SCOPE=SPFILE;
-- Etkinleşmesi için ilgili instance yeniden başlatılmalıdır; RAC'te her instance'ı ayrı değerlendirin.12c/19c CDB ortamında `processes` instance parametresidir; PDB içinden değiştirmeyin.
5. Doğrulama / Verification
- M37 eşik altına indi, yeni uygulama bağlantıları açılıyor; `gv$resource_limit` tekrar tırmanmıyor.
- Kaynak uygulamadaki havuz limiti ve kapanmayan bağlantı hatası düzeltildi; alert log'da yeni ORA-00020 yok.
6. Geri Alma / Rollback
- Sonlandırılan oturumlar geri gelmez, açık işlemleri rollback olur ve uygulama yeniden denemelidir.
- `SCOPE=SPFILE` ile değişen değer henüz etkin değilse önceki değeri `SCOPE=SPFILE` ile yazın; yeniden başladıysa eski değere dönüş için tekrar restart gerekir. Yeni sınırı doğrulamadan uygulama havuzunu eski seviyeye çıkarmayın.