0 oy
156 gösterim
Veri tabanında bir tabloyu truncate etmeye çalışırken  "ora-00054 kaynak meşgul ve nowait" hatası aldım.  Nasıl tabloyu truncate ederim, locked halini nasıl kill ederiz.

delete from table_name yapınca silebilmiştim. Denk mi geldi pek bilmiyorum.
Veri Tabanı kategorisinde (1.8k puan) | 156 gösterim
Şu linkte açıklama buldum ancak buradaki objelere yetkim olmadığından deneyemedim.

http://www.vitalsofttech.com/ora-00054-resource-busy-and-acquire-with-nowait-specified-or-timeout-expired/

2 Cevap

+1 oy

Truncate atmak istediğin tablo üzerinde bir lock varsa atamazsın. Lock atan session'u bulup kill edebilirsen sonrasında atabilirsin.

Sessionu bulabilmek için

select
   c.owner,
   c.object_name,
   c.object_type,
   b.sid,
   b.serial#,
   b.status,
   b.osuser,
   b.machine
from
   v$locked_object a ,
   v$session b,
   dba_objects c
where
   b.sid = a.session_id
and
   a.object_id = c.object_id;

Sessionu kill etmek için

ALTER SYSTEM KILL SESSION 'sid,serial#';

(3.9k puan)
0 oy
Tolga,

Eğer kayıtlarla ilgili bir ekranda çalışan varsa ekrandan çıkması da yeterli olabilir.
(374 puan)

İlgili sorular

0 oy
0 cevap
0 oy
1 cevap
0 oy
1 cevap
+1 oy
1 cevap