Oracle Blocking Sessions: Find and Resolve the Root Lock Holder
Correlates waiting and blocking sessions, locked objects and RAC instances to release contention without needless application disruption.
Operational Safety & Risk Notice
This runbook contains operational intervention steps; several are write-impacting (KILL, terminate, DROP, RESIZE). Verify in a staging environment first, and apply sequentially in production with verification.
1. Symptom & Signals
- M43 bloklanan oturum sayısı artıyor, `enq: TX - row lock contention` gibi beklemeler, uygulama zaman aşımı.
2. Business & Technical Impact
Etkilenen nesnelerde işlemler bekler, bağlantı havuzu dolar, işlem hacmi düşer. Uzun rollback ilave gecikme yaratabilir.
3. Diagnosis & Root-Cause Analysis
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. Remediation & Action Plan
-- 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. Verification & Health Checks
- 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. Rollback & Contingency Plan
- `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.