- 論壇徽章:
- 0
|
lsnrctl 程序還在運(yùn)行,刪除listener.log文件后,無法釋放硬盤空間,
原因:可能被刪除的文件在刪除的時(shí)侯還是進(jìn)程在操作(打開、訪問等)的緣故,rm只完成了在磁盤上文件實(shí)體的釋放,而類似free list結(jié)構(gòu)中相應(yīng)的文件系統(tǒng)因進(jìn)程的操作相應(yīng)的inode并未釋放。
1 引言
很多人會(huì)遇到在操作系統(tǒng)上rm掉一個(gè)大的文件,以解決文件系統(tǒng)超標(biāo)的問題,可是有的時(shí)侯文件刪除掉了,而空間卻未釋放出來。論壇上也常常見這樣貼子,為什么會(huì)這樣,如何解決呢?本文只局限于Hp unix的操作系統(tǒng)。
2 rm掉文件空間不釋放原因
原因其實(shí)很簡(jiǎn)單,主要是因?yàn)楸粍h除的文件在刪除的時(shí)侯還是進(jìn)程在操作(打開、訪問等)的緣故,rm只完成了在磁盤上文件實(shí)體的釋放,而類似free list結(jié)構(gòu)中相應(yīng)的文件系統(tǒng)因進(jìn)程的操作相應(yīng)的inode并未釋放。
3 解決的方法
這樣的問題解決起來也很簡(jiǎn)單,找到操作的進(jìn)程,kill掉就可以了,可是找到操作的進(jìn)程恰恰是本問題的難點(diǎn)和關(guān)鍵。這樣的問題也可以通過重啟機(jī)器和nmount/mount文件系統(tǒng)這樣的方式解決,但這樣的方法我是不提倡的,小小的問題就重啟機(jī)器,小題大做。
3.1 hp-unix操作系統(tǒng)
需要借助uli這個(gè)內(nèi)部工具,后面會(huì)詳細(xì)說。
3.2 linux及solaris
可以這樣做:
a、下載一個(gè)lsof軟件裝上,google上可以搜到
b、找到正在用被刪文件的進(jìn)程
lsof | grep deleted
c、kill掉相應(yīng)的進(jìn)程空間就釋放了
4 hp unix本問題的解決
4.1 問題重現(xiàn)
4.1.1 bdf一下/oracle文件系統(tǒng)
# bdf /oracle
Filesystem kbytes used avail %used Mounted on
/dev/vg00/lv_oracle
8192000 5313813 2698313 66% /oracle
可見空余2698313kb
4.1.2 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
#
4.1.3 以more命令查看文件,保持這個(gè)操作不動(dòng)
# more yztest_ora_11026.trc
4.1.4 另開一個(gè)窗口,刪除文件,空間未釋放
# 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文件系統(tǒng)的可用空間并未發(fā)生改變。
4.2 問題解決
4.2.1 安裝uli工具
這個(gè)工具如果沒有,可以向hp supporter要一個(gè)。
ftp到主機(jī),注意用以二進(jìn)制上傳
# 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
執(zhí)行uli.install
# ./uli.install uli a 2
#
查看一下uli的各個(gè)可用選項(xiàng)
# ./uli -h
4.2.2 執(zhí)行uli,殺掉操作進(jìn)程
# ./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.
PID PPID COMMAND INODE DEVICE SIZE(bytes)
15128 13937 more 20177 /dev/vg00/lv_oracle 62217530
9619 1 GWTDOMAIN 4119 /dev/vg00/lvapp 131072
9618 1 GWADM 4119 /dev/vg00/lvapp 131072
9617 1 GWTDOMAIN 4110 /dev/vg00/lvapp 131072
9616 1 GWADM 4110 /dev/vg00/lvapp 131072
9611 1 GWTDOMAIN 3988 /dev/vg00/lvapp 131072
9610 1 GWADM 3988 /dev/vg00/lvapp 131072
9608 1 GWTDOMAIN 3884 /dev/vg00/lvapp 131072
9607 1 GWADM 3884 /dev/vg00/lvapp 131072
9604 1 GWTDOMAIN 3856 /dev/vg00/lvapp 131072
9603 1 GWADM 3856 /dev/vg00/lvapp 131072
2775 1 swagentd 3936 /dev/vg00/lvol7 141
2209 1 java 28778 /dev/vg00/lvol7 13
2209 1 java 960 /dev/vg00/lvol7 3215
2209 1 java 960 /dev/vg00/lvol7 3215
2209 1 java 10180 /dev/vg00/lvol7 3215
可見15128進(jìn)程執(zhí)行了more操作,影響了空間的釋放
殺掉15128
# kill 15128
#
4.2.3 再查看一下/oracle的空間
# bdf /oracle
Filesystem kbytes used avail %used Mounted on
/dev/vg00/lv_oracle
8192000 5253045 2755283 66% /oracle
可見,可用空間已經(jīng)由原來的2698313kb升為2755283kb。
5 結(jié)篇
解決問題的方法是很多的,對(duì)于復(fù)雜的問題也可能有很簡(jiǎn)便的解決的方法,所以最好在用重啟機(jī)器這樣方法之前償試一下,看是否有更好的更方便的方法。
本文來自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u1/42019/showart_1955755.html |
|