linux文件删除后磁盘空间未释放的解决办法。原因是什么?删除了一个ORACLE的表空间文件,其实按标准从ORACLE内进行删除,只是将物理文件给 rm -rf 了,Linux目录的大小减少了,但看分区的信息时,磁盘空间还是占了那么多。
解决方法如下:
执行命令: 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)
表面Linux操作系统正在进行删除的清理工作,
将所有(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自身的进程。