Oracle Bloklayan Oturumlar: Kök Kilidi Bulma ve Çözme
Bekleyen ve bloklayan oturumları, kilitli nesneyi ve RAC instance'ını eşleştirir; uygulama işlemlerini gereksiz kesmeden kilidi çözer.
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
- M43 bloklanan oturum sayısı artıyor, `enq: TX - row lock contention` gibi beklemeler, uygulama zaman aşımı.
2. Etki / Impact
Etkilenen nesnelerde işlemler bekler, bağlantı havuzu dolar, işlem hacmi düşer. Uzun rollback ilave gecikme yaratabilir.
3. Teşhis / Diagnosis
SELECT w.inst_id AS wait_inst, w.sid AS wait_sid, w.seconds_in_wait,
w.event, w.sql_id AS wait_sql_id,
b.inst_id AS block_inst, b.sid AS block_sid, b.serial# AS block_serial,
b.username AS block_user, b.status AS block_status, b.sql_id AS block_sql_id,
b.prev_sql_id AS block_prev_sql_id
FROM gv$session w
JOIN gv$session b ON b.inst_id=w.blocking_instance AND b.sid=w.blocking_session
WHERE w.blocking_session IS NOT NULL
ORDER BY w.seconds_in_wait DESC;4. Müdahale / Response
-- Tek instance:
ALTER SYSTEM KILL SESSION '123,456' IMMEDIATE;
-- RAC'te ilgili instance:
ALTER SYSTEM KILL SESSION '123,456,@2' IMMEDIATE;SID/SERIAL#/instance'ı adım 1'deki güncel sonuçtan alın. Açık transaction geri alınırken kilitler hemen çözülmeyebilir.
5. Doğrulama / Verification
- S62 sorgusunda bloklanan zincir boşaldı, M43 normale döndü; uygulama süreleri ve hata oranı iyileşti.
- Sonlandırılan işlem için yeniden deneme/rollback etkisi uygulama sahibince doğrulandı.
6. Geri Alma / Rollback
- `KILL SESSION` geri alınamaz; açık işlem rollback olur, uygulama yeniden çalıştırmalıdır. Önleyici uygulama/indeks değişikliklerini ayrı geri dönüş planıyla yönetin.