dataiotech Labs
dbaguidedbaguideDBAdataxtoolsdataopsphere
Home/Hata Teşhis Kütüphanesi/oracle-ora-00028-00031-session-killed-marked-for-kill
Oracle
Oracle 19c - 23aiOturum & Kaynak Yönetimi
5 dk okuma
ORA-00028: your session has been killed / ORA-00031: session marked for kill

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.

İnceleyen:Kıdemli Veritabanı Mimarı & SRE (dataiotech Labs)
Test Edilen Sürümler: Oracle Database 19c / 21c / 23ai

Operasyonel Doğrulama & Güvenilirlik Standardı

Son Teknik İnceleme: 2 Kasım 2026
Test Edilen SürümlerOracle 19c, 23ai
Gerekli YetkiALTER SYSTEM yetkisi
Risk Seviyesi
MediumGeri alma (rollback) yapan oturumu işletim sisteminde kill -9 ile sonlandırmak SMON kurtarma sürecini uzatır
Beklenen Çıktıv$session tablosunda KILLED durumundaki oturumun işletim sistemi seviyesinde de temizlenmesi
Geri Dönüş (Rollback) Planı:SMON sürecinin rollback işlemini bitirmesini bekleme
Oracle Docs: ALTER SYSTEM KILL SESSION
İlk 60 Saniye Teşhis Protokolü:

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:

plaintext
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ıkKök NedenAçıklama
%50DBA Müdahalesi / Manuel KillBloke eden veya kaynak tüketen bir oturum sonlandırılmıştır.
%30Geri 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.
%20Resource Manager / Profile Zaman AşımıIDLE_TIME veya MAX_IDLE_TIME kotası aşılmıştır.

▸ACİL RUNBOOK (0-5dk)

sql
-- 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

  1. 1Resource Manager Planı: Oturumların plansız kill edilmesi yerine Resource Manager planı ile CPU ve idle time sınırları atanmalıdır.
  2. 2Kullanıcı Profilleri: IDLE_TIME ayarları uygulamanın bağlantı havuzu yapılandırmasıyla uyumlu hale getirilmelidir.

▸Doğrulama

sql
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.

Tüm Hatalar (82)