小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

為什么刪除文件后磁盤空間還是不變

 ala咪s 2014-03-14
為什么刪除文件后磁盤空間還是不變
2013-06-05 13:22:12     我來說兩句       作者:chengyue2007
收藏    我要投稿
為什么刪除文件后磁盤空間還是不變
 
解決方法
 
首先我們獲得一個已經(jīng)被刪除但是仍然被應(yīng)用程序占用的文件列表:用root用戶;
#lsof|grep deleted
ora    25575 data   33u      REG              65,65  4294983680   31014933 /oradata/DATAPRE/UNDOTBS009.dbf (deleted)
從lsof的輸出中,我們可以發(fā)現(xiàn)pid為25575的進程持有著以文件描述號(fd)為33打開的文件/oradata/DATAPRE/UNDOTBS009.dbf。
在我們找到了這個文件之后可以通過結(jié)束進程的方式來釋放被占用的空間。
#kill -9  25575
或者
#cd /root/.Trash/
#rm -rif * 
 
linux刪除文件后沒有釋放空間
今天發(fā)現(xiàn)一臺服務(wù)器的home空間滿了,于是要清空無用的文件,當我刪除文件后,發(fā)現(xiàn)可用空間沒有變化
os:centos4.7
 
現(xiàn)象:
發(fā)現(xiàn)當前磁盤空間使用情況:
[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
然后在查看磁盤空間使用情況,發(fā)現(xiàn)沒有/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命令應(yīng)該是直接刪除啊,在查看下/home下還有什么占用空間
[root@ticketb ~]# du -h --max-depth=1 /home
16K /home/lost+found
2.6G /home/oracle
2.6G /home
可這里顯示空間已經(jīng)釋放了啊,于是google下,
未釋放磁盤空間原因:
在Linux或者Unix系統(tǒng)中,通過rm或者文件管理器刪除文件將會從文件系統(tǒng)的目錄結(jié)構(gòu)上解除鏈接(unlink).然而如果文件是被
打開的(有一個進程正在使用),那么進程將仍然可以讀取該文件,磁盤空間也一直被占用。而我刪除的是oracle的告警log文件
刪除的時候文件應(yīng)該正在被使用
解決方法
首先獲得一個已經(jīng)被刪除但是仍然被應(yīng)用程序占用的文件列表,如下所示:
 
[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)
 
從輸出結(jié)果可以看到/home/oracle/admin/dbticb/bdump/alert_dbticb.log還被使用,未被釋放空間
如何讓進程釋放呢?
一種方法是kill掉相應(yīng)的進程,或者停掉使用這個文件的應(yīng)用,讓os自動回收磁盤空間
我這個環(huán)境有很多進程在使用的這個文件,停掉進程有點麻煩,再有就是風險很大
當linux打開一個文件的時候,Linux內(nèi)核會為每一個進程在/proc/ 『/proc/nnnn/fd/目錄(nnnn為pid)』建立一個以其pid
為名的目錄用來保存進程的相關(guān)信息,而其子目錄fd保存的是該進程打開的所有文件的fd(fd:file descriptor)。
kill進程是通過截斷proc文件系統(tǒng)中的文件可以強制要求系統(tǒng)回收分配給正在使用的的文件。
這是一項高級技術(shù),僅到管理員確定不會對運行中的進程造成影響時使用。應(yīng)用程序?qū)@種方
式支持的并不好,當一個正在使用的文件被截斷可能會引發(fā)不可預(yù)知的問題
 
例如,根據(jù)之前l(fā)sof的輸出:
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
 
所以我還是采用停應(yīng)用來解決
restart oracle數(shù)據(jù)庫,發(fā)現(xiàn)/home/oracle/admin/dbticb/bdump/alert_dbticb.log對應(yīng)的空間被釋放
在查看磁盤空間的使用情況,發(fā)現(xiàn)空間已經(jīng)回收了
 
[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

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多