嘗試更新sqlplus中的列值時遇到問題。刪除Oracle 10中的鎖
它基本上不會完成,只是掛起。我想知道是否有強制刪除甲骨文鎖?
我注意到一個名爲v $ locked_object的表,它包含一個與我遇到的問題相關的onject ID。
希望我已經解釋過這個好了。
在此先感謝您的幫助!
嘗試更新sqlplus中的列值時遇到問題。刪除Oracle 10中的鎖
它基本上不會完成,只是掛起。我想知道是否有強制刪除甲骨文鎖?
我注意到一個名爲v $ locked_object的表,它包含一個與我遇到的問題相關的onject ID。
希望我已經解釋過這個好了。
在此先感謝您的幫助!
這正好滿足你的目的:
SELECT SESSION_ID FROM DBA_DML_LOCKS WHERE NAME = <TABLE_NAME>;
使用SESSION_ID
找到與這種說法對應的SERIAL#
:
SELECT SID, SERIAL# FROM V$SESSION WHERE SID IN (
SELECT SESSION_ID FROM DBA_DML_LOCKS WHERE NAME = <TABLE_NAME>
);
找到有問題的元組SID, SERIAL#
和釋放這樣的:
ALTER SYSTEM KILL SESSION 'SID, SERIAL#';
我設法通過在檢查dba_blockers後在應用程序中查找保持會話來解決此問題。但是會記住未來的ALTER命令。由於低代表不能投票答覆。謝謝 –
我猜你現在可以投票了:)謝謝 – Mari
也許有人已經更新了同一張表並且還沒有提交。它甚至可能是你(在不同的工具或不同的會話中)。
擺脫鎖定最簡單的方法是在其他會話中提交工作。
嗨我已經設法通過查找DBA_BLOCKERS找到此問題的原因。獲得會話ID並殺死它。 –
管理解決此問題。
我查看了DBA_BLOCKERS表並獲得了會話ID。然後殺了會議,鎖被刪除。
您是否找到_what_過程鎖定了對象以及該進程在做什麼?當然,解決這個問題最好是解決問題而不是黑客攻擊它? (我相當肯定你的問題的答案是否定的)。 – Ben