昨天升级Ubuntu系统,由于空间不足一直失败,当时查看磁盘占用率为99%。删除了/var/lib/mysql 目录下的两个log文件。
rm /var/lib/mysql/ib_logfile0
rm /var/lib/mysql/ib_logfile1
删除成功之后,磁盘空间并没有释放,占用率依然是99%。在网上查找了一下资料,找到了未释放的原因:
在Linux或者Unix系统中,通过rm或者文件管理器删除文件将会从文件系统的文件夹结构上解除链接(unlink).然而假设文件是被打开的(有一个进程正在使用),那么进程将仍然能够读取该文件,磁盘空间也一直被占用。
首先查看一下已删除的文件是否还在被进程使用。
lsof | grep deleted
输出结果:
然后处理mysql进程。
root@CMGC-5:/var/lib/mysql# ps aux | grep mysql
1000 14477 0.0 0.0 101792 2624 pts/21 S+ May05 0:00 mysql -h 10.86.51.21 -uroot -px xxxxxxxx
mysql 21460 0.0 0.0 2061264 55220 ? Ssl 2014 43:12 /usr/sbin/mysqld
root 28632 0.0 0.0 8112 940 pts/16 S+ 10:37 0:00 grep --color=auto mysql
root@CMGC-5:/var/lib/mysql# kill -9 21460
kill掉mysql之后再次查看磁盘空间,已经被成功释放了。