1. 首页>
  2. 腾讯云代理

[经验分享] 【CVM】linux删除文件后沒有释放空间解决办法

腾讯云 2017年04月26日 浏览500

腾讯云代理 腾讯云直播申请 游戏上云

摘要:

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


定位过程
step1 发现当前磁盘空间使用情况
[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


step2 通过以下的命令找到没用的文件,然后删除
[root@ticketb ~]# find /home/oracle/admin/dbticb/udump/ -name "dbticb_*.trc" -mtime +50 | xargs rm -rf


step3 然后在查看磁盘空间使用情况,发现沒有/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
  
查看home空间显示显示空间已经释放了
[root@ticketb ~]# du -h –max-depth=1  /home
16K     /home/lost+found
2.6G    /home/oracle
2.6G    /home


step4 查询百度未释放磁盘空间原因
  在Linux或者Unix系统中,通过rm或者文件管理器删除文件将会从文件系统的文件夹结构上解除链接(unlink).然而假设文件是被打开的(有一个进程正在使用),那么进程将仍然能够读取该文件,磁盘空间也一直被占用。上面删除的是oracle的告警log文件删除的时候文件应该正在被使用
step5 解决方法
首先获得一个已经被删除可是仍然被应用程序占用的文件列表,例如以下所看到的:
[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还被使用,未被释放空间
step6 进程释放文件方式
办法1  kill掉相应的进程
当linux打开一个文件的时候,Linux内核会为每个进程在/proc/ 『/proc/nnnn/fd/文件夹(nnnn为pid)』建立一个以其pid
为名的文件夹用来保存进程的相关信息,而其子文件夹fd保存的是该进程打开的全部文件的fd(fd:file descriptor)。
kill进程是通过截断proc文件系统中的文件能够强制要求系统回收分配给正在使用的的文件。
这是一项高级技术,仅到管理员确定不会对执行中的进程造成影响时使用。应用程序对这样的方
式支持的并不好,当一个正在使用的文件被截断可能会引发不可预知的问题。我这个环境有非常多进程在使用的这个文件,停掉进程有点麻烦,再有就是风险非常大
办法2 停掉使用这个文件的应用,让os自己主动回收磁盘空间
restart oracle数据库,发现/home/oracle/admin/dbticb/bdump/alert_dbticb.log相应的空间被释放
step7 在查看磁盘空间的使用情况,发现空间已经回收了
[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


至此问题得以解决。

PS:更多经验分享案例,请移步ciossfang博客http://www.itts-union.com


腾讯云服务商邀请关注:

http://partners.qcloud.com/invitation/99377079157835da208bd0

关注服务商的链接,提供下您关注的QQ,我们这边审核下即可快速回复您的工单问题与技术支持! 感谢您的信任与支持!

auto_1452.png

腾讯云技术交流群


ps:本站信息来源于 bbs.qcloud.com

相关文章

在线客服
淘宝购买
腾讯云直播申请 title=
+成为腾讯云VIP客户 腾讯云直播申请 客服电话

15818558013

0755-33940501-803

0755-33940501-808