Linux df -h空間顯示不正確


今天發現一個測試數據庫磁盤空間快滿了,准備將幾個不再用的表空間刪除。通過以下命令刪除表空間內容及數據文件。

drop tablespace tablespace_name including contents and datafiles;

刪除之后通過df -h查看磁盤空間,沒有減少,反而增加了,很是奇怪。去存放數據文件的目錄查看,相關表空間的文件也已經被刪除了。

百度了一下,發現了遇到相同情況的一個帖子,具體見這里

處理過程如下:

1、通過lsof命令查看是否有進程正在占用這幾個表空間數據文件

lsof | grep delete

2、結果中可以看到有兩個進程占用着需要刪除文件

3、通過操作系統進程(可見這篇文章)查看oracle的session,查看到一台機器有客戶端連接着數據庫,實際上是pl/sql developer

4、到這台機器上關掉pl/sql developer,文件被真正刪除,df -h顯示空間正常

原因:

1、雖然通過rm -rf刪除了文件,但是有進程正在連接着這個文件,所以實際上這個文件是沒有被徹底刪除的,直到連接的進程被kill掉才會徹底刪除這個文件;

2、du是通過文件名統計使用空間的,rm -rf之后文件對於文件系統來說就已經沒有了,所以du查看空間正確,而df是查看的實際硬盤使用空間。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM