[转贴]关于rm删除文件空间不释放的问题可以写成一个FAQ了7v6k,R F B O5e*[9N,b
;] T O4b i v9W
一般说来不会出现rm掉不释放空间的情况
g7t c$i A i
出现这样的情况一般是由于有进程在向文件中写数据或有进程正在访问文件 ^%A i8G [
而此时rm文件则会出现不释放空间的情况0K c(G J s S6p#w3y
/n+B a U/j1I ^(P8N:O8z
理解这样的问题需要理解rm的操作内含 w"X V S(| U1J5S
一个文件的存放有数据部分和指针部分,而指针位于文件系统的头
!_ Z \#T A N
删除操作系统的一个文件与oracle drop表的实质有些相似
R#i o Y#V#w _
处理掉指针,文件数据部分占用的空间就可以写入新内容了
r'\(v'q z K)F
之所以出现rm不释放即为有进程在用这个文件而引起操作系统认为这个文件未实质释放,从而df或bdf空间统计不正确 ^#@ J \7];?
"t X w1| ~$q%}5_4e
这一类问题的解决方法一般说来可以重启操作系统,重新umount及mount那个文件系统
R)c A a t!b;B ~ o i5[
这并不是一个好方法$\/u }$R x
Y T x6A8o
我建议的操作方法如下:
(z8H ^ s w!] G
X
1、下载一个lsof软件装上,google上可以搜到0w ] J3p'L.E
2、找到正在用被删文件的进程
z L
F m a E#S
lsof | grep deleted .o!t5d7p v Q Z
3、kill掉相应的进程空间就释放了 _ k j V z4f i k
} t Q N7s'v G I$g
] ?
其它建议:
w%b b @
h q
I
1、清理alert.log listerner.log这些日志文件时最好用">文件"这样的操作方式,不要用rm。
4N [ U;x C&{ x
2、清理归档日志最好用backup ... delete input这样的方式。0z {)A3j:d y4t y E.m c
3、如果你的操作系统总出现rm不释放空间的问题,该请sa好好查查系统问题了,同时可以在rm前用lsof看一下有无进程在用这个文件。
![ B ?
B)Z H
4、解决问题的方法很多,最好不要用重启数据库或重启操作系统这样的方法
B;N4a t0`#L.h2m5P
阅读(996) | 评论(0) | 转发(0) |