我有个盒子根分区满了。
最直接的解释是mysql二进制日志不是旋转的。尽管expire_log_days被设置为10,但有一些日志超过10天。show master status、show slave status和purge binary logs都无限期挂起。
发布于 2011-03-16 17:17:19
我想试几样东西,但要确保/吃饱是你的问题。通常,Mysql将数据存储在/var/lib/mysql中,并且除了/tmp以外不使用/。
首先,尽量腾出一些空间。从下载并从未使用的src代码中删除旧日志。如果你能得到/降到不到100%,你的Mysql可能会返回到一种状态,在那里它是不楔形的。
假设你已经清理了一些空间,试着清除日志。我会尝试在DATE_SUB( NOW( ),间隔3天)之前从Mysql命令行中清除二进制日志。如果它在十分钟后仍然挂起,您可能需要关闭Mysql,如果可以的话,如果不能,则需要关闭它。
通常,手动删除日志绝不是一个好主意,但在这种情况下,这可能是您的唯一选择。删除最老的日志并尝试重新启动Mysql。它可能需要做一些桌子检查。注意mysql错误日志,直到它正常运行。然后再试着清除日志。
一旦它启动并运行,请确保在Mysql中通过检查显示变量来真正设置expire_logs_days。如果您的文件系统很小,您还可能希望设置max_binlog_size =100 m。通常Mysql会在1G旋转日志,这可能不够经常。Mysql只在当前日志达到最大值时旋转日志。
发布于 2011-03-16 17:53:53
我的建议是,一旦您拯救了它,就将/var/lib/mysql和/var/log/mysql放在它们自己的LVM卷上。
https://serverfault.com/questions/248192
复制相似问题