同事在測試庫上對乙個表加字段,提示 ora-00054, 資源忙。 應該是表物件的鎖沒有釋放。
用如下sql 檢視一下系統中相關物件上鎖的情況:
view plain
/* formatted
on2011/9/26 14:45:46(qp5 v5.163.1008.3004) */
select
s.sidsession_id,
s.username,
decode (lmode,
0, ' none '
, 1, ' null '
, 2, ' row-s(ss) '
, 3, ' row-x(sx) '
, 4, ' share'
, 5, 's/row-x (ssx) '
, 6, 'exclusive '
, to_char (lmode))
mode_held,
decode (request,
0, ' none '
, 1, ' null '
, 2, ' row-s(ss) '
, 3, ' row-x(sx) '
, 4, ' share'
, 5, 's/row-x (ssx) '
, 6, 'exclusive '
, to_char (request))
mode_requested,
o.owner|| ' . '
|| o.object_name||
' ( '
|| o.object_type||
' ) '
asobject_name,
s.typelock_type,
l.id1lock_id1,
l.id2lock_id2
fromv$lock l, sys.dba_objectso,v$session s
where
l.sid = s.sid
andl.id1 = o.object_id
該sql 顯示所有物件上的鎖,如果要查某個具體的物件,可以根據object_name 字段進行一下過濾,找到對應的sid 之後去查v$session 檢視。
該檢視會顯示session 對應的資訊,包括終端的資訊,如果找到了終端,可以讓它提交或者回滾一下就ok了。 我這裡是測試環境,直接把session kill 掉了。然後修改表就ok了。
view plain
sql>
alter
system kill session
'sid,serial#'
Oracle 檢視 物件 持有鎖的情況
同事在測試庫上對乙個表加字段,提示 ora 00054,資源忙。應該是表物件的鎖沒有釋放。用如下sql 檢視一下系統中相關物件上鎖的情況 view plain select s.sidsession id,s.username,decode lmode,0,none 1,null 2,row s s...
Oracle 檢視 物件 持有鎖的情況
同事在測試庫上對乙個表加字段,提示 ora 00054,資源忙。應該是表物件的鎖沒有釋放。用如下sql 檢視一下系統中相關物件上鎖的情況 view plain formatted on2011 9 2614 45 46 qp5v5.163.1008.3004 select s.sidsession ...
Oracle 檢視 物件 持有鎖的情況
同事在測試庫上對乙個表加字段,提示 ora 00054,資源忙。應該是表物件的鎖沒有釋放。該sql 顯示所有物件上的鎖,如果要查某個具體的物件,可以根據object name 字段進行一下過濾,找到對應的sid 之後去查v session 檢視。該檢視會顯示session 對應的資訊,包括終端的資訊...