我的 /etc/my.cnf 中有以下设置
log-bin = /var/lib/mysql_bin_logs/mysql-bin.log
expire_logs_days = 3
max_binlog_size = 100M
relay-log = /var/lib/mysql/slave-relay.log
relay-log-index = /var/lib/mysql/slave-relay-log.index
log-slave-updates
我可以看到/var/lib/mysql_bin_logs/
文件夹的大小保持不变。但是磁盘已满,我认为这与这些二进制日志文件的文件描述符未正确关闭有关。当我重新启动 MySQL 时,磁盘使用量下降了几 GB,这表明重新启动操作正在释放空间。
除了在 cronjob 上重新启动 MySQL 之外,我该如何防止磁盘被这样填满?
答案1
首先,我会lsof -u mysql
在运行时尝试查看 MySQL 打开了哪些文件。您可能还会发现lsof -u mysql | grep deleted
查看 MySQL 仍打开但已被删除的文件会更有帮助。如果发现是日志文件挂了,您可以尝试发出FLUSH LOGS
内部 MySQL 作为解决方法,看看它是否会关闭它们。