`

请您先登录,才能继续操作

HP-UX下删除文件无法释放空间

阅读更多
1 引言

很多人会遇到在操作系统上rm掉一个大的文件,以解决文件系统超标的问题,可是有的时侯文件删除掉了,而空间却未释放出来。论坛上也常常见这样贴子,为什么会这样,如何解决呢?本文只局限于Hp unix的操作系统。

2 rm掉文件空间不释放原因

原因其实很简单,主要是因为被删除的文件在删除的时侯还是进程在操作(打开、访问等)的缘故,rm只完成了在磁盘上文件实体的释放,而类似free list结构中相应的文件系统因进程的操作相应的inode并未释放。
3 解决的方法
这样的问题解决起来也很简单,找到操作的进程,kill掉就可以了,可是找到操作的进程恰恰是本问题的难点和关键。这样的问题也可以通过重启机器和nmount/mount文件系统这样的方式解决,但这样的方法我是不提倡的,小小的问题就重启机器,小题大做。

3.1 hp-unix操作系统
需要借助uli这个内部工具,后面会详细说。

3.2 linux及solaris
可以这样做:
a、下载一个lsof软件装上,google上可以搜到
b、找到正在用被删文件的进程
  lsof | grep deleted
c、kill掉相应的进程空间就释放了


4 hp unix本问题的解决

4.1 问题重现

4.1.1 bdf一下/oracle文件系统
# bdf /oracle
Filesystem          kbytes    used   avail %used Mounted on
/dev/vg00/lv_oracle
                   8192000 5313813 2698313   66% /oracle

可见空余2698313kb

4.1.2 udump下有一文件占用了60多mb的空间
# pwd
/oracle/app/oracle/admin/yztest/udump
#
# ls -l yztest_ora_11026.trc
-rw-rw-rw-   1 root       sys        62217530 Apr 23 10:36 yztest_ora_11026.trc
#

4.1.3 以more命令查看文件,保持这个操作不动
# more yztest_ora_11026.trc

4.1.4 另开一个窗口,删除文件,空间未释放
# rm yztest_ora_11026.trc
#
# ls -l yztest_ora_11026.trc
yztest_ora_11026.trc not found
#

# bdf /oracle
Filesystem          kbytes    used   avail %used Mounted on
/dev/vg00/lv_oracle
                   8192000 5313813 2698313   66% /oracle

可见/oracle文件系统的可用空间并未发生改变。

4.2 问题解决
4.2.1 安装uli工具
这个工具如果没有,可以向hp supporter要一个。

ftp到主机,注意用以二进制上传
# ls -l
total 960
-rw-rw-rw-   1 root       sys         487379 Apr 23 10:22 uli.bin

解压缩,文件是自解压的
# sh ./uli.bin
Running install script. ./uli.install uli a 2

查看一下
# ls -l
total 5520
-rwxrwxrwx   2 222        users      1160136 Dec 13  2006 uli
-rwxrwxrwx   2 222        users      1160136 Dec 13  2006 uli-a-2
-rw-rw-rw-   1 root       sys         487379 Apr 23 10:22 uli.bin
-rwxrwxrwx   1 222        users          536 Dec 13  2006 uli.install

执行uli.install
# ./uli.install uli a 2
#

查看一下uli的各个可用选项
# ./uli -h

4.2.2 执行uli,杀掉操作进程

# ./uli

libp4 (9.219): Opening /stand/vmunix /dev/kmem

Loading symbols from /stand/vmunix
Kernel TEXT pages not requested in crashconf
Will use an artificial mapping from a.out TEXT pages
Loading symbols from /stand/dlkm/mod.d/krm
Note: Consider P4_ELF_WARNING=2 to get more details
Note: No debug information for this module
Found 16 matching unlinked file table entries.
   PID   PPID COMMAND             INODE DEVICE                      SIZE(bytes)
15128  13937 more                20177 /dev/vg00/lv_oracle            62217530
  9619      1 GWTDOMAIN            4119 /dev/vg00/lvapp                  131072
  9618      1 GWADM                4119 /dev/vg00/lvapp                  131072
  9617      1 GWTDOMAIN            4110 /dev/vg00/lvapp                  131072
  9616      1 GWADM                4110 /dev/vg00/lvapp                  131072
  9611      1 GWTDOMAIN            3988 /dev/vg00/lvapp                  131072
  9610      1 GWADM                3988 /dev/vg00/lvapp                  131072
  9608      1 GWTDOMAIN            3884 /dev/vg00/lvapp                  131072
  9607      1 GWADM                3884 /dev/vg00/lvapp                  131072
  9604      1 GWTDOMAIN            3856 /dev/vg00/lvapp                  131072
  9603      1 GWADM                3856 /dev/vg00/lvapp                  131072
  2775      1 swagentd             3936 /dev/vg00/lvol7                     141
  2209      1 java                28778 /dev/vg00/lvol7                      13
  2209      1 java                  960 /dev/vg00/lvol7                    3215
  2209      1 java                  960 /dev/vg00/lvol7                    3215
  2209      1 java                10180 /dev/vg00/lvol7                    3215

可见15128进程执行了more操作,影响了空间的释放

杀掉15128
# kill 15128
#
4.2.3 再查看一下/oracle的空间
# bdf /oracle
Filesystem          kbytes    used   avail %used Mounted on
/dev/vg00/lv_oracle
                   8192000 5253045 2755283   66% /oracle

可见,可用空间已经由原来的2698313kb升为2755283kb。

5 结篇

解决问题的方法是很多的,对于复杂的问题也可能有很简便的解决的方法,所以最好在用重启机器这样方法之前偿试一下,看是否有更好的更方便的方法。
分享到:
评论

相关推荐

    HP-UX System Administration Tasks

    - **系统日志管理**:定期清理旧的日志文件,释放磁盘空间。 ### 结论 HP-UX作为一款高性能的UNIX操作系统,在许多企业级应用环境中扮演着重要角色。掌握上述关键知识点不仅有助于提高系统的稳定性和安全性,还能...

    HP-UX 系统管理员指南:逻辑卷管理

    - **从卷组删除磁盘**:释放不再需要的磁盘空间。 - **创建逻辑卷**:基于卷组创建逻辑卷。 - **创建条带化逻辑卷**:提高读写性能。 - **创建镜像逻辑卷**:增强数据保护能力。 - **扩展逻辑卷**:增大逻辑卷的大小...

    HP-UNIX 开发手册 系统调用和文件格式详细分析

    - **内存管理**:如分配和释放内存空间。 - **输入输出操作**:如读写文件或设备。 #### HP-UNIX中的系统调用 HP-UNIX Release 11.0中提供了丰富的系统调用,这些调用按照其功能被分类为不同的部分。例如,Section ...

    ALTIBASE维护手册

    **1.2 HP-UX下的ALTIBASE安装** - **1.2.1 系统需求** - 对于HP-UX操作系统,同样需要满足一定的系统要求,包括最低版本的要求等。文档中未提供具体版本号,但可以参考AIX的需求来估计。此外,还应关注特定于HP-UX...

    APUE读书笔记(Unix高级环境编程)

    - **主要Unix系统实现简介**:列举不同的Unix变种(如Solaris、AIX、HP-UX等),并简要说明其特点。 - **系统资源限制**:讨论如何查看和修改进程的资源限制,如最大文件大小、最大进程数等。 - **POSIX选项**:介绍...

    数据库巡检方案.docx

    例如,在AIX和HP-UX系统上,可以分别使用`df –g`、`bdf`或`df –k`来查看磁盘空间。 3. **根目录与关键目录的空间管理**: - 特别关注根目录、数据库软件安装目录以及数据库备份存储的位置,它们的剩余空间直接...

    数据库巡检方案.pdf

    当剩余空间低于10%时,应考虑删除无用文件以释放空间。在示例中,可以看到 `/dev/md/dsk/d0` 的使用率接近85%,而 `/data05` 和 `/archivelog` 目录也需要密切关注。 3. **磁盘空间管理**: 特别需要注意的是根...

    UNIX环境高级编程(第3版)

    - **其他UNIX系统:** 如AIX、HP-UX等。 **2.4 标准和实现的关系** - **兼容性问题:** 讨论了不同标准和实现之间存在的兼容性差异。 - **跨平台开发:** 分析了跨不同UNIX系统进行开发时需要注意的问题。 **2.5 ...

    (重要)AIX command 使用总结.txt

    kmtune //HP-UX下用kmtune>kernel.txt将内核参数信息导出到kernel.txt文件中配置文件为: /usr/conf/master.d/core-hpux ##操作系统 //操作系统版本 uname -a //操作系统补丁 instfix -i|grep ML //获取硬件信息 ...

    Oracle 11g问答题

    - UNIX (Solaris, AIX, HP-UX) #### 9. 在Linux系统上安装Oracle 11g 的准备工作 - 确保操作系统版本符合要求。 - 安装必要的依赖包,如kernel-devel、compat-libstdc++-33等。 - 调整内核参数,增加最大文件描述...

    UNIX技术内幕(5)

    UNIX系统还强调可移植性,通过开放源代码和遵循POSIX标准,使得UNIX系统能够在不同的硬件平台上运行,如IBM AIX、HP-UX、Sun Solaris以及FreeBSD和Linux等。 总之,《UNIX技术内幕(5)》可能会涵盖上述领域的详细...

    UNIX简明教程

    其中,UNIX System V成为商业UNIX系统的基础,由多家公司如AT&T、IBM、HP、SunSoft和Santa Cruz Operation进行商业化的开发和推广,各自推出了自己的版本,如SVR4、AIX Unix、HP-Ux、Solaris OS和SCO Unix。...

    Linux 详解笔记

    Unix系统由AT&T Bell Labs在1969年开始开发,随后衍生出多种变体,包括IBM的AIX、HP的HP-UX和Sun的Solaris。这些系统虽然各具特色,但都保留了Unix的核心功能和设计理念。FreeBSD和OpenBSD是两个基于Unix的开源操作...

Global site tag (gtag.js) - Google Analytics