`
chengyue2007
  • 浏览: 1468611 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

为什么删除文件后磁盘空间还是不变

 
阅读更多

解决方法

 

首先我们获得一个已经被删除但是仍然被应用程序占用的文件列表:用root用户;

#lsof|grep deleted

进程名   PID       USER    FD   文件类型    大小(字节)  索引节点                          文件名  [(状态)]

ora      25575     data     33u      REG      65,65    4294983680   31014933 /oradata/DATAPRE/UNDOTBS009.dbf (deleted)

从lsof的输出中,我们可以发现pid为25575的进程持有着以文件描述号(fd)为33打开的文件/oradata/DATAPRE/UNDOTBS009.dbf。

在我们找到了这个文件之后可以通过结束进程的方式来释放被占用的空间。

#kill -9  25575

或者

#cd /root/.Trash/

#rm -rif * 

 

 

linux删除文件后没有释放空间

今天发现一台服务器的home空间满了,于是要清空无用的文件,当我删除文件后,发现可用空间没有变化

os:centos4.7

 

现象:

发现当前磁盘空间使用情况:

[root@ticketb ~]# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/sda1 981M 203M 729M 22% /

none 16G 0 16G 0% /dev/shm

/dev/sda9 2.9G 37M 2.7G 2% /tmp

/dev/sda7 4.9G 1.9G 2.7G 42% /usr

/dev/sda8 2.9G 145M 2.6G 6% /var

/dev/mapper/vghome-lvhome

20G 19G 11M 100% /home

/dev/mapper/vgoradata-lvoradata

144G 48G 90G 35% /u01/oradata

/dev/mapper/vgbackup-lvbackup

193G 7.8G 175G 5% /u01/backup

 

通过下面的命令找到无用的文件,然后删除

 

[root@ticketb ~]# find /home/oracle/admin/dbticb/udump/ -name "dbticb_*.trc" -mtime +50 | xargs rm -rf

然后在查看磁盘空间使用情况,发现没有/home空间没有变化

[root@ticketb ~]# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/sda1 981M 203M 729M 22% /

none 16G 0 16G 0% /dev/shm

/dev/sda9 2.9G 37M 2.7G 2% /tmp

/dev/sda7 4.9G 1.9G 2.7G 42% /usr

/dev/sda8 2.9G 145M 2.6G 6% /var

/dev/mapper/vghome-lvhome

20G 19G 11M 100% /home

/dev/mapper/vgoradata-lvoradata

144G 48G 90G 35% /u01/oradata

/dev/mapper/vgbackup-lvbackup

193G 7.8G 175G 5% /u01/backup

这个郁闷啊,明明删除文件了,怎么空间没有被释放啊,rm命令应该是直接删除啊,在查看下/home下还有什么占用空间

[root@ticketb ~]# du -h --max-depth=1 /home

16K /home/lost+found

2.6G /home/oracle

2.6G /home

可这里显示空间已经释放了啊,于是google下,

未释放磁盘空间原因:

在Linux或者Unix系统中,通过rm或者文件管理器删除文件将会从文件系统的目录结构上解除链接(unlink).然而如果文件是被

打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用。而我删除的是oracle的告警log文件

删除的时候文件应该正在被使用

解决方法

首先获得一个已经被删除但是仍然被应用程序占用的文件列表,如下所示:

 

[root@ticketb ~]# lsof |grep deleted

oracle 12639 oracle 5w REG 253,0 648 215907 /home/oracle/admin/dbticb/udump/dbticb_ora_12637.trc (deleted)

oracle 12639 oracle 6w REG 253,0 16749822091 215748 /home/oracle/admin/dbticb/bdump/alert_dbticb.log (deleted)

oracle 12639 oracle 7u REG 253,0 0 36282 /home/oracle/oracle/product/10.2.0/db_1/dbs/lkinstdbticb (deleted)

oracle 12639 oracle 8w REG 253,0 16749822091 215748 /home/oracle/admin/dbticb/bdump/alert_dbticb.log (deleted)

oracle 12641 oracle 5w REG 253,0 648 215907 /home/oracle/admin/dbticb/udump/dbticb_ora_12637.trc (deleted)

oracle 12641 oracle 6w REG 253,0 16749822091 215748 /home/oracle/admin/dbticb/bdump/alert_dbticb.log (deleted)

oracle 23492 oracle 6w REG 253,0 16749822091 215748 /home/oracle/admin/dbticb/bdump/alert_dbticb.log (deleted)

oracle 23492 oracle 7u REG 253,0 0 36282 /home/oracle/oracle/product/10.2.0/db_1/dbs/lkinstdbticb (deleted)

oracle 23492 oracle 8w REG 253,0 16749822091 215748 /home/oracle/admin/dbticb/bdump/alert_dbticb.log (deleted)

oracle 23494 oracle 10u REG 253,0 0 36307 /home/oracle/oracle/product/10.2.0/db_1/dbs/lkinstrmandb (deleted)

 

从输出结果可以看到/home/oracle/admin/dbticb/bdump/alert_dbticb.log还被使用,未被释放空间

如何让进程释放呢?

一种方法是kill掉相应的进程,或者停掉使用这个文件的应用,让os自动回收磁盘空间

我这个环境有很多进程在使用的这个文件,停掉进程有点麻烦,再有就是风险很大

当linux打开一个文件的时候,Linux内核会为每一个进程在/proc/ 『/proc/nnnn/fd/目录(nnnn为pid)』建立一个以其pid

为名的目录用来保存进程的相关信息,而其子目录fd保存的是该进程打开的所有文件的fd(fd:file descriptor)。

kill进程是通过截断proc文件系统中的文件可以强制要求系统回收分配给正在使用的的文件。

这是一项高级技术,仅到管理员确定不会对运行中的进程造成影响时使用。应用程序对这种方

式支持的并不好,当一个正在使用的文件被截断可能会引发不可预知的问题

 

例如,根据之前lsof的输出:

1.$ file /proc/25575/fd/33

2./proc/25575/fd/33: broken symbolic link to `/oradata/DATAPRE/UNDOTBS009.dbf (deleted)'

3.$ echo > /proc/25575/fd/33

 

所以我还是采用停应用来解决

restart oracle数据库,发现/home/oracle/admin/dbticb/bdump/alert_dbticb.log对应的空间被释放

在查看磁盘空间的使用情况,发现空间已经回收了

 

[root@ticketb ~]# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/sda1 981M 203M 729M 22% /

none 16G 0 16G 0% /dev/shm

/dev/sda9 2.9G 37M 2.7G 2% /tmp

/dev/sda7 4.9G 1.9G 2.7G 42% /usr

/dev/sda8 2.9G 145M 2.6G 6% /var

/dev/mapper/vghome-lvhome

20G 2.6G 16G 15% /home

/dev/mapper/vgoradata-lvoradata

144G 48G 90G 35% /u01/oradata

/dev/mapper/vgbackup-lvbackup

193G 7.8G 175G 5% /u01/backup

分享到:
评论

相关推荐

    清理SQL Server日志释放文件空间的方法

    【问题场景】有一个数据库,它的名字叫CNBlogsText,日志文件霸占了23G硬盘空间,而事务日志已经截断(Truncate),实际日志内容很小,1G都不到。23G的空间只放1G不到的日志,如同用一栋别墅养一只宠物,太了!秉承...

    Linux网络操作系统基础:磁盘管理基础.ppt

    Linux 规定“一切皆文件”,磁盘以及磁盘分区,均有与之对应的设备文件,存放于/dev 中 UUID文件系统通用唯一识别符,是由 Linux 系统分配的固定不变的唯一标识字符串。建议尽量使用 UUID * 主引导记录(MBR,Main ...

    磁盘数据恢复工具专业版 Disk Drill Professional 4.0.527.0 中文多语免费版.zip

    在理想的情况下,我们可以坐在那里等待,但并非总是如此,这就是为什么 Disk Drill 具有强大的会话管理功能。扫描可以随时暂停,停止或恢复。这意味着,如果您已经找到了所要查找的文件,则无需等待完整扫描完成,只...

    MySQL学习笔记之为什么表数据删掉一半,表文件大小不变(十三)

    1.参数 innodb_file_per_table 表数据既可以存在共享表空间里,也可以是单独的文件。这个行为是由参数 innodb_file_per_table 控制的: 参数设置为OFF ,表的数据存放在系统表空间,也就是跟...但是磁盘文件的大小不会

    borg-macosx64 borgbackup: 1.1.11 重复数据删除备份程序

    完整的文件或时间戳保持不变:如果大文件发生了一些变化,则仅需要存储几个新块-这对于VM或原始磁盘非常有用。数据块在文件内的绝对位置:重复数据删除算法可能会填充东西并仍然可以找到它们。在C / Cython文件/块...

    VF辅导:内存变量操作命令及文件操作命令

     说明:该命令用于给磁盘文件改名,文件名一般应带扩展名.如果文件不在当前目录中,应指定扩展名.对已打开的文件不能改名.改名的同时可以更换存放路径,例如:rename d:\xy\as.prg to e:\as1.prg  5.删除文件:  ...

    centosU盘及硬盘安装方法

    boot目录是引导文件位置100M不变,根目录是系统文件位置,看你的CentOS有多大了,home目录是用户目录,如果是卖服务空间的话,这个目录应该安排为最大,否则就无所谓了,usr目录是安装软件目录,swap是虚拟内存,...

    WinRAR_4.0.exe

    全部删除,这个空的压缩文件将被删除。 e 解压文件到当前目录。 f 更新压缩文件中的文件。 更新打包到压缩文件后被改变的文件。这个命令不 向压缩文件中添加新文件。 i[i|c|h|t]=<字符串> 在压缩文件中...

    Super-EC破解版

    ' 增加"取磁盘可用空间",获取指定磁盘的可用空间(单位字节) ' 增加"取磁盘已用空间",获取指定磁盘已经使用的空间(单位字节) ' 增加"格式化磁盘",将指定磁盘进行格式化,格式化后磁盘中数据将丢失,请慎重使用! ' 加强...

    随心所欲Flash

    3)清除文件列表中的某些文件,可以使用鼠标框选方式或使用按下Ctrl键同时用鼠标点选,然后按下Delete键删除所选择的项目,而且可以选择只删除列表中的内容也可以选择同时删除磁盘中的文件。 4)可以更改文件在列表...

    数据库系统概念:存储和文件结构.pdf

    数据库系统概念:存储和⽂件结构 ⽂章⽬录 1、基本概念 1、内存数据库与磁盘数据库的特征⽐较 内存数据库 内存数据库 磁盘数据库 磁盘数据库 存取时间 s 量级 s 量级 数据存储 不需要连续存储 连续存储 缓冲管理 不...

    Linux系统交换空间介绍

    交换空间是当今计算的一个共同方面,不管操作系统如何。Linux使用交换空间来增加主机可用的虚拟内存量。...存储在磁盘上的数据即使从计算机中移除电源也保持不变。CPU(中央处理单元)不能直接访问硬盘上的程

    Jazz-UPX v1.0

    Jazz-UPX 来对文件进行压缩或解压的动作,让压缩过后的文件大小缩减至原本的 20% ~ 90% 喔(视文件内容可压缩程度而定),如此一来,不仅仅是有效节省硬盘的储存空间,且当你要使用被压缩过后的文件时,完全不需要...

    最好用的电脑图片无损压缩软件之一(便携版) | 图片无损压缩软件哪个好?

    苹果用户还可以将iPhone HEIC照片转换为优化后的JPEG格式的图片,保证打印出来的图片跟原始文件保持一致,允许用户能更快的上传高分辨率照片、降低大量磁盘空间占用,网站图片加载也会更快捷,用户体验显著提高,该...

    最好用的电脑图片无损压缩软件之一 | 图片无损压缩软件哪个好?

    苹果用户还可以将iPhone HEIC照片转换为优化后的JPEG格式的图片,保证打印出来的图片跟原始文件保持一致,允许用户能更快的上传高分辨率照片、降低大量磁盘空间占用,网站图片加载也会更快捷,用户体验显著提高,该...

    常用的一些处理电脑的技巧

    Smartdrv.exe这个文件在Windows各个版本的安装光盘中或是硬盘上的Windows/command/里都有,只有几十KB,把这个文件复制到软盘下,启动系统后直接运行这个程序(可以不加参数,该程序会自动根据内存大小分配适当的内存...

    电脑高手必备 Windows系统35招实用技巧

    个文件在Windows各个版本的安装光盘中或是硬盘上的Windows/command/里都 有,只有几十KB,把这个文件复制到软盘下,启动系统后直接运行这个程序( 可以不加参数,该程序会自动根据内存大小分配适当的内存空间作为...

    NoFS:用于安全评估、逆向工程和恶意软件分析的磁盘映像环回

    无FS 这种基于用户空间熔断器的文件系统为原始磁盘映像提供了一种环回,使其特别适用于操作系统对文件系统行为的逆向工程,并可能用于分析某些形式的恶意软件。 如果您第一次使用 NoFs 挂载 DD 磁盘映像,则伪文件...

    timeshift:Linux的系统还原工具。 使用rsync + hardlinks或BTRFS快照创建文件系统快照。 支持计划的快照,多个备份级别,并排除过滤器。 可以在系统运行时或从Live CDUSB恢复快照

    快照之间共享公用文件,从而节省了磁盘空间。 每个快照都是完整的系统备份,可以使用文件管理器进行浏览。 在BTRFS模式下,使用BTRFS文件系统的内置功能拍摄快照。 BTRFS快照仅在具有Ubuntu型子卷布局(带有@和@...

    计算机应用基础-3.doc

    A:将进行磁盘文件碎片整理,提高磁盘的读写速度 B:将磁盘的文件碎片删除,释放磁盘空间 C:将进行磁盘碎片整理,并重新格式化 D:将不小心摔坏的软盘碎片重新整理规划使其重新可用 答案: A 22、在Windows中,...

Global site tag (gtag.js) - Google Analytics