测试oralce时,删除datafile后,发现磁盘空间没有被释放。
从网上搜索到下面的解释:
一般说来不会出现rm掉不释放空间的情况
出现这样的情况一般是由于有进程在向文件中写数据或有进程正在访问文件
而此时rm文件则会出现不释放空间的情况。
理解这样的问题需要理解rm的操作内含
一个文件的存放有数据部分和指针部分,而指针位于文件系统的头
删除操作系统的一个文件与oracle drop表的实质有些相似
处理掉指针,文件数据部分占用的空间就可以写入新内容了
之所以出现rm不释放即为有进程在用这个文件而引起操作系统认为这个文件未实质释放,从而df或bdf空间统计不正确
这一类问题的解决方法一般说来可以重启操作系统,重新umount及mount那个文件系统
这并不是一个好方法
建议的操作方法如下:
1、安装lsof
2、找到正在用被删文件的进程
lsof | grep deleted
3、kill掉相应的进程空间就释放了
其它建议:
1、清理alert.log listerner.log这些日志文件时最好用">文件"这样的操作方式,不要用rm。
2、清理归档日志最好用backup ... delete input这样的方式。
3、如果你的操作系统总出现rm不释放空间的问题,该请sa好好查查系统问题了,同时可以在rm前用lsof看一下有无进程在用这个文件。
4、解决问题的方法很多,最好不要用重启数据库或重启操作系统这样的方法。
阅读(751) | 评论(0) | 转发(0) |