歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> Unix資訊

Hp unix rm文件空間不釋放問題解決

很多人會遇到在操作系統上rm掉一個大的文件,以解決文件系統超標的問題,可是有的時侯文件刪除掉了,而空間卻未釋放出來。論壇上也常常見這樣貼子,為什麼會這樣,如何解決呢?本文只局限於Hp unix的操作系統。

rm掉文件空間不釋放原因

原因其實很簡單,主要是因為被刪除的文件在刪除的時侯還是進程在操作(打開、訪問等)的緣故,rm只完成了在磁盤上文件實體的釋放,而類似free list結構中相應的文件系統因進程的操作相應的inode並未釋放。

解決的方法

這樣的問題解決起來也很簡單,找到操作的進程,kill掉就可以了,可是找到操作的進程恰恰是本問題的難點和關鍵。這樣的問題也可以通過重啟機器和nmount/mount文件系統這樣的方式解決,但這樣的方法我是不提倡的,小小的問題就重啟機器,小題大做。

1 Hp unix操作系統
需要借助uli這個內部工具,後面會詳細說。

2 linux及solaris
可以這樣做:
a、下載一個lsof軟件裝上,google上可以搜到
b、找到正在用被刪文件的進程
lsof | grep deleted
c、kill掉相應的進程空間就釋放了

Hp unix本問題的解決

1 問題重現

1.1 bdf一下/oracle文件系統
 

  1. # bdf /oracle  
  2. Filesystem kbytes used avail %used Mounted on  
  3. /dev/vg00/lv_oracle  
  4. 8192000 5313813 2698313 66% /oracle  
  5. 可見空余2698313kb 

1.2 udump下有一文件占用了60多mb的空間
 

  1. # pwd  
  2. /oracle/app/oracle/admin/yztest/udump  
  3. #  
  4. # ls -l yztest_ora_11026.trc  
  5. -rw-rw-rw- 1 root sys 62217530 Apr 23 10:36 yztest_ora_11026.trc  

1.3 以more命令查看文件,保持這個操作不動
# more yztest_ora_11026.trc

1.4 另開一個窗口,刪除文件,空間未釋放
 

  1. # rm yztest_ora_11026.trc  
  2. #  
  3. # ls -l yztest_ora_11026.trc  
  4. yztest_ora_11026.trc not found  
  5. #  
  6. # bdf /oracle  
  7. Filesystem kbytes used avail %used Mounted on  
  8. /dev/vg00/lv_oracle  
  9. 8192000 5313813 2698313 66% /oracle 

可見/oracle文件系統的可用空間並未發生改變。

這樣,我們對Hp unix中的問題就分析清楚了,解決問題的方法就浮出水面了。

Copyright © Linux教程網 All Rights Reserved