Linux / Unix 下文件删除、句柄 与空间释放问题
来源:互联网 发布:爱奇艺软件官方下载 编辑:程序博客网 时间:2024/05/21 21:45
昨天在一个客户环境,由于空间紧张,删除了一个文件,遇到了文件句柄与空间释放的问题,记录一下。
在系统上,临时表空间扩展到了32G,我新建了一个临时表空间,并切换了数据库设置:[oracle@corde tdb]$ ls -sort
total 35101212
51264 -rw-r----- 1 oracle 52429312 Oct 20 08:58 redo02.log
51264 -rw-r----- 1 oracle 52429312 Oct 20 10:24 redo03.log
5144 -rw-r----- 1 oracle 5251072 Oct 20 10:29 users01.dbf
32943240 -rw-r----- 1 oracle 34358697984 Oct 20 10:35 temp01.dbf
1035268 -rw-r----- 1 oracle 1059069952 Oct 20 10:39 undotbs01.dbf
430516 -rw-r----- 1 oracle 440410112 Oct 20 10:39 sysaux01.dbf
512516 -rw-r----- 1 oracle 524296192 Oct 20 10:40 system01.dbf
51264 -rw-r----- 1 oracle 52429312 Oct 20 10:40 redo01.log
6912 -rw-r----- 1 oracle 7061504 Oct 20 10:40 control03.ctl
6912 -rw-r----- 1 oracle 7061504 Oct 20 10:40 control02.ctl
6912 -rw-r----- 1 oracle 7061504 Oct 20 10:40 control01.ctl
之前空间已经使用了88%:
/dev/sda3 80632188 66675432 9860584 88% /data1
然后删除这个文件,发现空间并未释放:
[oracle@corder tdb]$ rm temp01.dbf
[oracle@corder tdb]$ df -k
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
5611984 160272 5166632 4% /
/dev/sda1 101086 12495 83372 14% /boot
/dev/sda3 80632188 66675432 9860584 88% /data1
这是由于Linux/Unix上,该文件可能仍被其他进程使用的缘故,文件句柄未完全释放,空间无法释放出来,属于常见问题,可以通过lsof工具来查看哪些进程锁定了该文件:
[root@db]# lsof|grep temp
oracle 3167 oracle 38uW REG 8,2 1048584192 4497986 /data3/oradata/temp01.dbf
oracle 3173 oracle 35u REG 8,2 1048584192 4497986 /data3/oradata/temp01.dbf
oracle 3894 oracle 22u REG 8,3 34358697984 3808524 /data1/xcrtdb/temp01.dbf (deleted)
oracle 3894 oracle 25u REG 8,2 1048584192 4497986 /data3/oradata/temp01.dbf
oracle 12576 oracle 15u REG 8,3 34358697984 3808524 /data1/xcrtdb/temp01.dbf (deleted)
oracle 24544 oracle 11u REG 8,3 34358697984 3808524 /data1/xcrtdb/temp01.dbf (deleted)
我们可以看到虽然文件标记为删除(deleted),但是仍然被几个进程锁定:
[root@XcorderDB xcrtdb]# ps -ef|grep 3894
oracle 3894 1 10 07:35 ? 00:19:38 ora_j000_xcrtdb
root 18974 16849 0 10:49 pts/3 00:00:00 grep 3894
[root@XcorderDB xcrtdb]# ps -ef|grep 12576
oracle 12576 1 0 Oct19 ? 00:00:24 oraclexcrtdb (LOCAL=NO)
root 18992 16849 0 10:49 pts/3 00:00:00 grep 12576
[root@XcorderDB xcrtdb]# ps -ef|grep 24544
oracle 24544 1 0 Oct19 ? 00:00:19 oraclexcrtdb (LOCAL=NO)
root 19018 16849 0 10:49 pts/3 00:00:00 grep 24544
如果可以kill这些进程,句柄就可以释放出来,否则可以重启数据库,之后即会释放。
Aix上lsof的参考文档: http://www.ibm.com/developerworks/aix/library/au-lsof.html
-The End-
转自:http://www.eygle.com/archives/2009/10/linux_unix_file_handle_deleted.html
- Linux / Unix 下文件删除、句柄 与空间释放问题
- 【linux】lsof命令和{Linux下文件删除、句柄与空间释放问题}
- Linux下文件被删除后,磁盘空间未得到释放
- linux下文件句柄参数的调整
- linux删除文件空间未释放问题
- linux下文件删除不了
- Linux操作系统下文件保护与彻底删除技巧
- linux下文件的复制、移动与删除命令
- linux下文件的复制、移动与删除
- linux下文件的复制、移动与删除
- linux下文件的复制、移动与删除
- linux下文件的复制、移动与删除
- Linux下文件的复制、移动与删除
- linux下文件的复制、移动与删除
- linux下文件的复制、移动与删除
- linux下文件的复制、移动与删除命令
- linux下文件的复制、移动与删除
- linux下文件的复制、移动与删除命令
- pda 通过蓝牙 共享pc的宽带上网
- 独家记忆
- 蓝牙共享上网
- Oracle归档模式与非归档模式设置
- 统计数字问题
- Linux / Unix 下文件删除、句柄 与空间释放问题
- 格式化硬盘 (.net C#)
- 【转】不要迷失在技术的海洋中
- VMWare Workstation 7出炉 支持Win7 Aero
- ORACLE PL/SQL异常处理(Exception)学习笔记
- 软件人员推荐书目
- oracle启动和关闭
- 为何说C#中的delegate是类型安全的可管理的
- 使用TestDriven.Net