在linux下删除文件或oracle表空间后,很多人会遇到linux空间不释放的问题,这个问题可以如下解决:[@more@]
用root用户登陆
执行命令: lsof | grep 你要删除的操作系统文件名
就会看到类似如下信息:
oracle 15435 oracle 7u REG 8,6 0 57871108 /test.dbf (deleted)
说明操作系统正在进行删除的清理工作,
把所有(delete)状态的都kill掉,注意这里面有一些oracle数据库自身的进程的不要kill,然后等三分钟,空间就释放出来了.附lsof命令的用法:
lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,因此通过lsof工具能够查看这个列表对系统监测以及排错将是很有帮助的。
在终端下输入lsof即可显示系统打开的文件,因为 lsof 需要访问核心内存和各种文件,所以必须以 root 用户的身份运行它才能够充分地发挥其功能。
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
init 1 root cwd DIR 3,3 1024 2 /
init 1 root rtd DIR 3,3 1024 2 /
init 1 root txt REG 3,3 38432 1763452 /sbin/init