Oracle Oturum Sonlandırma: Resource Manager MAX_IDLE_TIME, Profile IDLE_TIME ve İşletim Sistemi Seviyesinde Kill
DBA müdahalesi, profil kısıtlamaları veya Resource Manager planı sonucu sonlandırılan oturumların analizi; v$session incelemesi ve ORA-00031 rollback kilitlenmelerinde SPID temizliği.
Operasyonel Doğrulama & Güvenilirlik Standardı
Hata mesajı semptomdur, kök neden değildir. Sunucuyu yeniden başlatmadan veya rastgele ayar değiştirmeden önce aşağıdaki "Nedeni ayırt eden tek sorgu"yu çalıştırarak gerçek senaryoyu netleştirin.
▸Belirti
İstemci sorgu çalıştırırken aniden oturumu kapatılır:
ORA-00028: your session has been killed
ORA-00031: session marked for kill▸Sahada Ne Görürsün?
DBA ALTER SYSTEM KILL SESSION komutu çalıştırmıştır veya Resource Manager / Kullanıcı Profili (IDLE_TIME) aşılmıştır. v$session içinde oturumun durumu KILLED görünür ancak saatlerce kaybolmaz.
▸Kök Neden Matrisi
| Olasılık | Kök Neden | Açıklama |
|---|---|---|
| %50 | DBA Müdahalesi / Manuel Kill | Bloke eden veya kaynak tüketen bir oturum sonlandırılmıştır. |
| %30 | Geri Alma (Rollback) Beklemesi (ORA-00031) | Oturum sonlandırılmıştır ancak arkasında devasa bir DML transaction'ı bıraktığı için rollback bitene kadar kilitleri bırakamaz. |
| %20 | Resource Manager / Profile Zaman Aşımı | IDLE_TIME veya MAX_IDLE_TIME kotası aşılmıştır. |
▸ACİL RUNBOOK (0-5dk)
-- 1. Kilitli veya KILLED kalmış oturumu ve işletim sistemi sürecini (SPID) bul
SELECT s.sid, s.serial#, s.status, s.username, s.program, p.spid
FROM v$session s
JOIN v$process p ON s.paddr = p.addr
WHERE s.status = 'KILLED' OR s.sid = 123;
-- 2. IMMEDIATE ile anında zorla sonlandır
ALTER SYSTEM KILL SESSION '123,4567' IMMEDIATE;
-- 3. Eğer rollback yapmıyorsa ve işletim sisteminde takılı kaldıysa OS seviyesinde temizle:
-- kill -9 <SPID>▸KALICI BLUEPRINT
- 1Resource Manager Planı: Oturumların plansız kill edilmesi yerine Resource Manager planı ile CPU ve idle time sınırları atanmalıdır.
- 2Kullanıcı Profilleri:
IDLE_TIMEayarları uygulamanın bağlantı havuzu yapılandırmasıyla uyumlu hale getirilmelidir.
▸Doğrulama
SELECT sid, serial#, status FROM v$session WHERE sid = 123;Diğer Veritabanı Hata Teşhisleri
Kriz anında başvurabileceğiniz diğer doğrulanmış hata rehberleri.
Oracle ORA-01653: Tablespace Genişletme ve Çözüm Adımları
ORA-01653 / 01654 / 01652 ayrımı, tablespace doluluk sorgusu, datafile autoextend ve MAXSIZE ile güvenli büyütme.
Oracle ORA-00001: unique constraint violated Teşhisi ve Çözümü
Manuel ID girişleri veya sequence önbellek kaybı sonucu sequence'in mevcut tablodaki maksimum ID'nin gerisinde kalması; sequence INCREMENT BY adımları ve MERGE deseni.
Oracle ORA-00060: deadlock detected while waiting for resource Teşhisi
Ters sırada çalışan DML işlemleri veya yabancı anahtar kolonlarında indeks eksikliğinden kaynaklanan ORA-00060 kilitlenmeleri; trace dosyası okuma ve SELECT FOR UPDATE NOWAIT çözümü.