Linux刪除檔案後磁碟目錄不釋放

2022-06-14 15:15:10 字數 1263 閱讀 1708

今天測試oracle資料庫的時候,把錶空間連帶內容和資料檔案一併刪除了,但是刪除之後,檢視資料檔案不存在了,但是目錄的帶下沒有釋放

sql>

drop tablespace users including contents and datafiles;

檢視目錄大小

$ df -

horadglv01

30g 26g

2.7g 91

%/oradata01

發現目錄剩餘空間只有2.7g大小,明顯不對,進入目錄檢視是否存在有檔案

$ ls

control01.ctl control02.ctl redo01.

log redo02.log redo03.log sysaux01.dbf system01.dbf temp01.dbf temp2_01.dbf undotbs01.dbf

發現並沒有users01.dbf這個檔案,說明這個檔案已經被刪除了

這就很奇怪了,沒有資料檔案,但是目錄空間沒有釋放。這是因為刪除檔案時,刪除的並不是磁碟上真正存在的資料檔案,而是刪除的目錄,因此你看不到目錄(檔案路徑報錯檔名)

但是實際的資料仍在,也就是可覆蓋的,這時候,如果有乙個程式,開啟了檔案控制代碼,沒有關閉,也就是仍然在往這個檔案寫東西的話,就沒辦法覆蓋,因此目錄沒有釋放

解決方法:

# lsof|grep -i delete

oracle

11472 oracle 259u reg 253,4

17179877376

393221

/oradata01/monkey/

users01.dbf (deleted)

oracle

16477 oracle 261u reg 253,4

6442459136

393229

/oradata01/monkey/users01.dbf (deleted)

使用lsof命令(root),檢視哪些程序還在往已經刪除的檔案中寫資料

我這個找到後,是我開啟的oracle客戶端,因此我把oracle客戶端關閉後,目錄就釋放出來了

# df -

horadglv01

30g

9.3g 19g 34

%/oradata01

Linux 刪除檔案後磁碟空間不釋放的解決方法

我們的系統是 red hat,有乙個盤快要滿了,需要清理一些日誌。我使用 rm 刪除了乙個600mb 的檔案,cd var log rm test.log 然後使用 ls xargs du sh 檢視log目錄下的所有檔案及資料夾的大小 發現 log 目錄減小了 600mb,然後用 df h 檢視磁...

mongodb刪除集合後磁碟空間不釋放

mongodb刪除集合後磁碟空間不釋放,只有用db.repairdatabase 去修復才能釋放。但是在修復的過程中如果出現了非正常的mongodb的掛掉,再次啟動時啟動不了的,需要先修復才可以,可以利用.mongod repair dbpath data mongo 如果你是把資料庫單獨的放在乙個...

rm 刪除檔案後磁碟依然占用

lsof命令用於檢視你程序開打的檔案,開啟檔案的程序,程序開啟的埠 tcp udp 找回 恢復刪除的檔案。是十分方便的系統監視工具,因為lsof命令需要訪問核心記憶體和各種檔案,所以需要root使用者執行。在linux環境下,任何事物都以檔案的形式存在,通過檔案不僅僅可以訪問常規資料,還可以訪問網路...