天天看點

巧用close_trace指令釋放誤删trace檔案

可能很多朋友都遇到過這樣的情況,在UNIX/Linux上定期清理Oracle日志檔案夾時可能删除到仍被背景程序open着的trace檔案,即某些背景程序一直持有着這些”被已經誤删了的“打開檔案的描述符(fd),這種情況下檔案系統上該檔案實際占用的空間是不會被釋放的,這就造成使用df指令檢視檔案系統剩餘空間和用du指令檢視檔案夾空間使用量時數值不一緻的問題。此外因為是背景程序持有這些打開檔案描述符,是以我們無法像kill服務程序一樣來解決該問題(部分背景程序是可以kill的,不建議這樣做)。oradebug是sqlplus中威力強大的debug指令,我們可以通過該指令發起多種trace/dump,其中也包括了close_trace事件;close_trace事件可以讓指定程序關閉其正持有的trace檔案。

下面我們就來示範下相關操作: