解決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一直沒有對這個鎖進行釋放且一直不會完成釋放導致錯誤。

 

需要對此會話進行強制殺掉: 
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'; 

3. 殺會話 
語法: 
ALTER SYSTEM KILL SESSION 'SID,SERIAL#'; 
例如: 
ALTER SYSTEM KILL SESSION '436,62365'; 

殺完之后再查詢,發現sid對應的數據沒了,這樣就可以啦!實在不行只能重啟數據庫


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM