红联Linux门户
Linux帮助

删除linux文件后,磁盘空间未释放的解决办法

发布时间:2015-12-14 15:50:49来源:linux网站作者:sdomain

今天删除了一个ORACLE的表空间文件,示按标准从ORACLE内进行删除,只是把物理文件给 rm -rf 了,结果看目录的大小减少了,但看分区的信息时,空间还是占了那么多。


后来在网上查了,解决方法如下:

执行命令: lsof | grep 你要删除的操作系统文件名


就会看到类似如下信息:

oracle    12713    oracle   12u      REG              253,1 22260228096   19234817 /data/oracle/.../pcds01.dbf (deleted)
oracle    14899    oracle   22uW     REG              253,1 22260228096   19234817 /data/oracle/.../pcds01.dbf (deleted)
oracle    14901    oracle   25u      REG              253,1 22260228096   19234817 /data/oracle/.../pcds01.dbf (deleted)
oracle    14903    oracle   23u      REG              253,1 22260228096   19234817 /data/oracle/.../pcds01.dbf (deleted)
oracle    14905    oracle   19u      REG              253,1 22260228096   19234817 /data/oracle/.../pcds01.dbf (deleted)


说明操作系统正在进行删除的清理工作,

把所有(delete)状态的都kill掉,注意这里面有一些oracle数据库自身的进程的不要kill,然后等三分钟,空间就释放出来了.附lsof命令的用法:


其实实只要用ps ax |grep 12713

把各个进程都查一偏,找到

[root@beta1 beta1]# ps ax |grep 14899
14899 ?        Ss     4:55 ora_dbw0_pcds
16392 pts/6    S+     0:00 grep 14899

这种情况的进程,然后:kill -9 14899


再用df -h 查看,空间正一点一点释放,

如果ps ax |grep 列出的是:

12713 ?        Ss     0:55 oraclepcds (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))

则不能删除,这是ORACLE自身的进程。


如何清理不必要的Ubuntu磁盘空间占用:http://www.linuxdiyf.com/linux/16050.html

Ubuntu 15.10查看哪些文件(夹)占用了磁盘空间:http://www.linuxdiyf.com/linux/14852.html

查找系统中最占磁盘空间的文件:http://www.linuxdiyf.com/linux/14493.html