(轉載)刪除檔案後硬碟空間不釋放的問題
轉載自:
很多人會遇到在作業系統上rm掉一個大的檔案,以解決檔案系統超標的問題,可是有的時侯檔案刪除掉了,而空間卻未釋放出來。論壇上也常常見這樣貼子,為什麼會這樣,如何解決呢?本文只侷限於Hp unix的作業系統。
原因其實很簡單,主要是因為被刪除的檔案在刪除的時侯還是程式在操作(開啟、訪問等)的緣故,rm只完成了在磁碟上檔案實體的釋放,而類似free list結構中相應的檔案系統因程式的操作相應的inode並未釋放。
[@more@]這樣的問題解決起來也很簡單,找到操作的程式,kill掉就可以了,可是找到操作的程式恰恰是本問題的難點和關鍵。這樣的問題也可以透過重啟機器和nmount/mount檔案系統這樣的方式解決,但這樣的方法我是不提倡的,小小的問題就重啟機器,小題大做。
hp-unix作業系統
需要藉助uli這個內部工具,後面會詳細說。
linux及solaris
可以這樣做:
a、下載一個lsof軟體裝上,google上可以搜到
b、找到正在用被刪檔案的程式
lsof | grep deleted
c、kill掉相應的程式空間就釋放了
hp unix本問題的解決
問題重現
bdf一下/oracle檔案系統
# bdf /oracle
Filesystem kbytes used avail %used Mounted on
/dev/vg00/lv_oracle
8192000 5313813 2698313 66% /oracle
可見空餘2698313kb
udump下有一檔案佔用了60多mb的空間
# pwd
/oracle/app/oracle/admin/yztest/udump
#
# ls -l yztest_ora_11026.trc
-rw-rw-rw- 1 root sys 62217530 Apr 23 10:36 yztest_ora_11026.trc
#
以more命令檢視檔案,保持這個操作不動
# more yztest_ora_11026.trc
另開一個視窗,刪除檔案,空間未釋放
# rm yztest_ora_11026.trc
#
# ls -l yztest_ora_11026.trc
yztest_ora_11026.trc not found
#
# bdf /oracle
Filesystem kbytes used avail %used Mounted on
/dev/vg00/lv_oracle
8192000 5313813 2698313 66% /oracle
可見/oracle檔案系統的可用空間並未發生改變。
問題解決
安裝uli工具
這個工具如果沒有,可以向hp supporter要一個。
ftp到主機,注意用以二進位制上傳
# ls -l
total 960
-rw-rw-rw- 1 root sys 487379 Apr 23 10:22 uli.bin
解壓縮,檔案是自解壓的
# sh ./uli.bin
Running install script. ./uli.install uli a 2
檢視一下
# ls -l
total 5520
-rwxrwxrwx 2 222 users 1160136 Dec 13 2006 uli
-rwxrwxrwx 2 222 users 1160136 Dec 13 2006 uli-a-2
-rw-rw-rw- 1 root sys 487379 Apr 23 10:22 uli.bin
-rwxrwxrwx 1 222 users 536 Dec 13 2006 uli.install
執行uli.install
# ./uli.install uli a 2
#
檢視一下uli的各個可用選項
# ./uli -h
4.2.2 執行uli,殺掉操作程式
# ./uli
libp4 (9.219): Opening /stand/vmunix /dev/kmem
Loading symbols from /stand/vmunix
Kernel TEXT pages not requested in crashconf
Will use an artificial mapping from a.out TEXT pages
Loading symbols from /stand/dlkm/mod.d/krm
Note: Consider P4_ELF_WARNING=2 to get more details
Note: No debug information for this module
Found 16 matching unlinked file table entries.
15128程式執行了more操作,影響了空間的釋放
殺掉15128
# kill 15128
#
再檢視一下/oracle的空間
# bdf /oracle
Filesystem kbytes used avail %used Mounted on
/dev/vg00/lv_oracle
8192000 5253045 2755283 66% /oracle
可見,可用空間已經由原來的2698313kb升為2755283kb。
解決問題的方法是很多的,對於複雜的問題也可能有很簡便的解決的方法,所以最好在用重啟機器這樣方法之前償試一下,看是否有更好的更方便的方法。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25016/viewspace-1004466/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- hpux刪除檔案後空間不釋放UX
- Linux 刪除檔案後空間不釋放Linux
- 刪除正在使用的檔案,空間不釋放的問題
- Linux檔案刪除但空間不釋放問題篇Linux
- 解決刪除檔案後 WSL2 磁碟空間不釋放的問題
- 解決linux下刪除檔案或oracle表空間後空間不釋放的問題LinuxOracle
- 處理Linux刪除檔案後空間未釋放的問題Linux
- 解決linux刪除檔案後空間沒有釋放問題Linux
- linux下檔案刪除之後,空間沒有釋放問題Linux
- Linux下資料檔案刪除檔案系統空間不釋放的問題Linux
- RM刪除檔案空間釋放詳解
- Linux檔案刪除空間未釋放Linux
- drop表空間以及對應的資料檔案後空間不釋放的問題
- 刪除檔案後,磁碟空間沒有釋放的處理記錄
- oracle刪除(釋放)資料檔案/表空間流程Oracle
- Oracle 刪除資料後釋放資料檔案所佔磁碟空間Oracle
- linux中如何解決檔案已刪除但空間不釋放的案例Linux
- Mysql 刪除資料後為釋放物理空間MySql
- Mysql InnoDB刪除資料後釋放磁碟空間的方法MySql
- MySQL 5.7的表刪除資料後的磁碟空間釋放MySql
- 歸檔日誌物理刪除後閃回恢復區空間未釋放
- Linux rm掉檔案空間不釋放原因Linux
- [待整理]oracle10g刪除(釋放)資料檔案/表空間流程Oracle
- 刪除表空間,資料檔案也刪除後,但作業系統層面上空閒空間不見增加。作業系統
- Oracle delete資料後的釋放表空間問題的解決 --轉Oracledelete
- 刪除表空間和表空間包含的檔案
- 截斷表後空間不釋放的原因分析
- OS 刪除temp表空間 而磁碟空間未釋放的解決方案
- mac怎麼徹底刪除檔案不佔用空間Mac
- 面試官給我挖坑:rm刪除檔案之後,空間就被釋放了嗎?面試
- 記錄刪除後,資料塊空間不釋放,請大家幫忙看看分析一下
- delete不釋放表空間delete
- oracle 失誤刪掉資料檔案後,刪除表空間操作Oracle
- oracle誤刪除表空間的資料檔案Oracle
- 行動硬碟刪除的檔案能恢復嗎,怎麼恢復硬碟刪除的檔案硬碟
- Oracle 11g 表空間的誤刪除, 當前的控制檔案不識別該表空間Oracle
- 監控空間並自動刪除超出空間的最老的檔案
- delete/truncate刪除資料索引空間問題delete索引