问题:
数据库删除掉某个大表(大概800G)后,发现用df -h看到空间没有被释放;
[root@_从2) ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 534G 2.3G 504G 1% /
tmpfs 63G 0 63G 0% /dev/shm
/dev/sda1 190M 28M 153M 16% /boot
/dev/fioa 5.9T 5.7T 127G 98% /apps
用du看发现空间信息跟df不一致;
[root@1_从2) ~]# du -sh
/apps 4.8T /apps
原因:
使用命令查看lsof | grep express_ops_flow_cwb_snapshot,发现该文件信息显示已经被删除,但是仍被进程22904占用;
[root@_从2) ~]# lsof | grep express_ops_flow_cwb_snapshot
innobacku 22904 apps 698r REG 252,0 23156752384 2258147521 /apps/dbdat/mysql5_data3306/gztl_dmp/express_ops_flow_cwb_snapshot.ibd
innobacku 22904 apps 742r REG 252,0 955693137920 2257948336 /apps/dbdat/mysql5_data3306/gztl_dmp/express_ops_flow_cwb_snapshot_bak_20170522.ibd (deleted)
查看进程发现是备份未完成,所以进程一直持有信息不释放;(只是信息不释放,实际空间已经释放)
[root@_从2) ~]# ps -ef | grep 22904
apps 22904 1 11 00:20 ? 01:52:18 /usr/bin/innobackupex --defaults-file=/apps/conf/mysql/mysql5_3306.cnf --user=back --password=back**! --slave-info --kill-long-query-type=select --kill-long-queries-timeout=60 --extra-lsndir=/apps/dbbackup/mysql_3306/xtra_incr_20170524002001 --stream=tar ./