解決oracle數據庫 ora-00054:resource busy and acquire with NOWAIT specified 錯誤

解決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

相關文章
相關標籤/搜索