今天測試oracle資料庫的時候,把錶空間連帶內容和資料檔案一併刪除了,但是刪除之後,檢視資料檔案不存在了,但是目錄的帶下沒有釋放
sql>drop tablespace users including contents and datafiles;
檢視目錄大小
$ df -horadglv01
30g 26g
2.7g 91
%/oradata01
發現目錄剩餘空間只有2.7g大小,明顯不對,進入目錄檢視是否存在有檔案
$ lscontrol01.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 deleteoracle
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環境下,任何事物都以檔案的形式存在,通過檔案不僅僅可以訪問常規資料,還可以訪問網路...