1.故障现象:
接到用户反馈,某云服务平台centos6.3+mysq5.1.61的web控制台登录后白屏(正常情况下是不会白屏的)
2.故障分析:
检查系统发现磁盘空间满:
查看日志发现是mysql的binlog日志占用太多,从未设置过自动清理导致。
进入根目录核查du -sh *那个目录占用过大。
3.故障处理:
到此处理思路很明确了:
了解到该库为单机,并没有主备配置,也没有做相关备份,所以理论上删除过期的日志或关闭binlog模式即可。
由于不了解更多信息,保险起见,采用删除过期日志方式:
登录mysql做purge是安全操作命令,注意一开始没有直接用rm删除日志是从保险角度考虑,会导致binlog.index和真实存在的binlog不匹配。而且rm也要从最旧的日志删起,不要一下删掉所有的或者最新的。
但是当发出purge命令后,发现一直卡住:
purge binary logs to 'mysql-bin.000065';
原因是系统没有任何剩余空间可让该变更操作完成。
所以决定先用rm的方式删掉最旧的几个binlog文件,腾出一点空间后,再次尝试purge操作成功。
为了避免将来日志过多占用,决定设置保留7天日志。
1.配置文件添加参数,这样下回重启会生效
expire_logs_days = 7
2.临时设置参数,当前状态下会生效,避免了需要重启mysql的问题。
show variables like 'expire_logs_days';
set global expire_logs_days=7;
show variables like 'expire_logs_days';
flush logs;
空间释放出来后,web控制台恢复正常,问题解决。
4.后续建议:
1.部署备份,有条件配置主备环境,否则失去了开启binlog意义。
2.确定不需要binlog,可在my.cnf去掉相关binlog设置参数,重启mysql服务,可永久避免日志满的问题。
show variables like 'log_%';
如下图,OFF表示关闭
最后修改时间:2022-09-20 11:18:43
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。