我的目标是取回我的 opt 目录中的存储空间。我希望能够看到它的尺寸不断增大,以便定期维护检查意味着我可以在需要空间时缩小它的尺寸。
在我从 mutt 删除邮件之前,我得到了这个磁盘大小输出(缩写):
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 38314216 12189488 24155376 34% /
/dev/sda3 144053404 133666076 3046736 98% /opt
192.168.1.161:/home 237256704 51089408 175959040 23% /opt/www/etl/sftp-homes
光驱空间不足(如上所述):
所以我删除了旧电子邮件(日志记录),使用这个
>mutt
shift + D
~d>4m
q
这看起来像是在 mutt 中起作用,因为 mutt 似乎完成了删除所述文件的工作。但 df 没有给我任何空间,它仍然是完全相同的。我假设 mutt 保存了文件大小并且可能需要重新启动???或者 mariadb 需要重新启动/清理以释放数据库大小???还是Centos需要重启??? (似乎很极端)我如何重新获得该磁盘空间,或者这里是否有其他清理解决方案。
仅供参考,我找不到重新启动 mutt 的方法?并且重新启动 mariadb 不起作用。文件的大部分内容保存在 ibdata1 中
答案1
这似乎是 mariadb 的问题。
https://stackoverflow.com/questions/3456159/how-to-shrink-purge-ibdata1-file-in-mysql
https://www.thegeekstuff.com/2016/02/mysql-innodb-file-per-table/
这里有详细说明同样的问题,而且太难了:默认的大 MySQL 系统表空间方法有一个主要缺点。
以此场景为例:您已将 100GB 的数据上传到 MySQL 中的多个表中。
现在,ibdata1 文件大小将约为 100GB 以上。
# cd /var/lib/mysql
# ls -lh ibdata1
-rw-r-----. 1 mysql mysql 101G Jan 21 21:10 ibdata1
几天后,您从所有这些表中删除了大约 50GB 的数据。 ibdata1文件大小不会减少到50GB+左右,仍会保持在100GB+左右。
在上述情况下,稍后当您向表中添加 10GB 的数据时,ibdata1 文件大小不会增长到 110GB,而是保持在 100GB。因为,该文件内部仍然有上述 50GB 已删除数据中未使用的空间。
问题是,从 ibdata1 文件中删除 50GB 数据后,您无法回收那些未使用的空间。有一种方法可以做到这一点,但太复杂了,需要关闭 MySQL 数据库,并删除所有表等。