同事在測試庫上對一個表加字段,提示 ORA-00054, 資源忙。 應(yīng)該是表對象的鎖沒有釋放。
用如下SQL 查看一下系統(tǒng)中相關(guān)對象上鎖的情況:
1./* Formatted on 2011/9/26 14:45:46(QP5 v5.163.1008.3004) */
2.SELECT S.SIDSESSION_ID, 3. S.USERNAME,
4. DECODE (LMODE,
5. 0, ' None ', 6. 1, ' Null ', 7. 2, ' Row-S(SS) ', 8. 3, ' Row-X(SX) ', 9. 4, ' Share', 10. 5, 'S/Row-X (SSX) ', 11. 6, 'Exclusive ', 12. TO_CHAR (LMODE))
13. MODE_HELD,
14. DECODE (REQUEST,
15. 0, ' None ', 16. 1, ' Null ', 17. 2, ' Row-S(SS) ', 18. 3, ' Row-X(SX) ', 19. 4, ' Share', 20. 5, 'S/Row-X (SSX) ', 21. 6, 'Exclusive ', 22. TO_CHAR (REQUEST))
23. MODE_REQUESTED,
24. O.OWNER|| ' . ' || O.OBJECT_NAME|| ' ( ' || O.OBJECT_TYPE|| ' ) ' as OBJECT_NAME, 25. S.TYPELOCK_TYPE,
26. L.ID1LOCK_ID1,
27. L.ID2LOCK_ID2
28. FROMV$LOCK L, SYS.DBA_OBJECTSO,V$SESSION S
29. WHERE L.SID = S.SID AND L.ID1 = O.OBJECT_ID
該SQL 顯示所有對象上的鎖,如果要查某個具體的對象,可以根據(jù)OBJECT_NAME 字段進(jìn)行一下過濾,找到對應(yīng)的SID 之后去查V$SESSION 視圖。
該視圖會顯示session 對應(yīng)的信息,包括終端的信息,如果找到了終端,可以讓它提交或者回滾一下就OK了。 我這里是測試環(huán)境,直接把session kill 掉了。然后修改表就ok了。
1.SQL>alter system kill session 'SID,SERIAL#'
本文出自:億恩科技【1tcdy.com】
服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]
|