Oracle

如何刪除被 UTL_FILE 鎖定的文件?

  • January 28, 2020

我編寫了一個崩潰的 PL/SQL 腳本並忘記關閉文件句柄(類型UTL_FILE.file_type)。

現在我無法刪除該文件。除了重新啟動實例或重新啟動盒子之外,我可以在 Oracle 中執行什麼來清除句柄嗎?我有system使用者訪問有問題的盒子。

更新:Oracle 在 Windows 上執行。

會話死了嗎?

SELECT sid, serial# FROM v$session WHERE /* conditions */;

-- ALTER SYSTEM KILL SESSION '<sid>, <serial>';
ALTER SYSTEM KILL SESSION '123, 456';

如果終止會話不起作用,您可以使用名為 Handle 的 SysInternals 實用程序顯式關閉文件句柄。

https://technet.microsoft.com/en-us/sysinternals/bb896655

我還發現了一個 SuperUser 執行緒,其中提到 LockHunter 和 Process Explorer 作為其他可以完成這項工作的工具:

https://superuser.com/questions/425727/how-to-unlock-file-without-kill-related-process

如果您只想強制關閉文件,您可以使用一個工具來關閉打開的文件。

Google搜尋我找到了 OpenFilesView。見http://www.nirsoft.net/utils/opened_files_view.html

引用自:https://dba.stackexchange.com/questions/57364