今天客户的服务器数据库启动失败了,刚开始是怀疑磁盘不够导致的,通过df-h查询磁盘总的消耗才一半,通过宝塔面板的磁盘信息才意识到是磁盘的Inode占用满了导致的。
数据库启动报错
210628 17:03:23 [ERROR] MYSQL_BIN_LOG::open_purge_index_file failed to open register file.
210628 17:03:23 [ERROR] MYSQL_BIN_LOG::open_index_file failed to sync the index file.
210628 17:03:23 [ERROR] Aborting
宝塔面板查询磁盘的Inodb占用满
1、升级磁盘空间的方式,磁盘由原本的50G升级到了100G,inode占用也由原本的100%转为50%了。
推荐理由:如果不清楚清理小文件,可以直接升级磁盘。
2、删除无用的临时文件,释放inode。
推荐理由:清楚那些文件可以清理,建议阿里云快照后操作。
查找发现 /tmp 目录下有很多sess_xxxxx的 session临时文件。
ls -lt /tmp | wc -l 4011517
进入/tmp目录,执行find -exec命令
sudo find /tmp -type f -exec rm {} \;
如果使用rm *,有可能因为文件数量太多而出现Argument list too long错误
除了/tmp的临时文件外,0字节的文件也会占用inode,应该也释放。
遍历寻找0字节的文件,并删除。
sudo find /home -type f -size 0 -exec rm {} \;
删除后,inode 的使用量减少为19%,可以正常使用了。
df -i
扫码赞赏,鼓励支持
相关问题
网站被反诈中心DNS劫持为127.0.0.1或0.0.0.0如何解决?阿里云服务器迁移到另一个账号实现过户宝塔Windows面板安装教程(图文)IE 浏览器提示增强的安全配置已启用的解决方法Windows系统如何禁止IPv6网络阿里云域名转移到另外一个账号