標籤:alt res use object 客戶 導致 ecif serial 過程
解決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對應的資料沒了,這樣就可以啦!實在不行只能重啟資料庫
解決oracle資料庫 ora-00054:resource busy and acquire with NOWAIT specified 錯誤