解決oracle數據庫 ora-00054:resource busy and acquire with NOWAIT specified 錯誤
本人在使用pl/sql developer 客戶端調用存儲過程進行操做時發現中途卡機而後強制終止pl/sql developer 以後,oracle就一直出現鎖相關的錯誤。
經分析認爲在調用存儲過程時對錶進行了DDL語句操做時致使了悲觀封鎖。客戶端卡機後oracle一直沒有對這個鎖進行釋放且一直不會完成釋放致使錯誤。sql
須要對此會話進行強制殺掉:
1. 查詢當前被鎖的對象 數據庫
select t2.username, t2.sid, t2.serial#, t2.logon_time from v$locked_object t1, v$session t2 where t1.session_id = t2.sid order by t2.logon_time
2. 查詢session信息
SQL> SELECT v.sid,v.SERIAL#,v.USERNAME,v.ACTION FROM v$session v WHERE v.sid IN (SELECT session_id FROM v$locked_object WHERE ORACLE_USERNAME= 'ATHENA') AND V.MACHINE='NBCB\KJB-080701N'; session
3. 殺會話
語法:
ALTER SYSTEM KILL SESSION 'SID,SERIAL#';
例如:
ALTER SYSTEM KILL SESSION '436,62365'; oracle
殺完以後再查詢,發現sid對應的數據沒了,這樣就能夠啦!實在不行只能重啓數據庫ui