mysql binlog导致磁盘爆满

问题:在使用mysql大量写入数据时,突然发现无法在继续写入了。登录上机器通过df -lh看到服务器磁盘使用100%.

 

连接上mysql, 统计一下每个数据库占用的数据大小。发现占用的数据也不过十来G.

select round(sum(DATA_LENGTH/1024/1024),2) as d_size, table_schema
 from TABLES
 group by table_schema

但是到mysql数据目录一统计,实际占用的差不多400G磁盘空间, 最显眼的是一大堆 mysql-bin.\d+文件,每个都超过1G,这些文件到底是什么鬼? 随之搜一下,原来是mysql binlog日志在搞怪。

 

这下就明白了,mysql默认将所有更新操作记录放入了binlog中,所以在大量写入数据后会产生大量的日志占满磁盘。

 

解决办法:

1、关闭binlog日志(测试环境,线上不要这么干,否则如果遇到故障,日志也丢了就很难恢复数据了)

配置my.cnf 修改注释掉log-bin、binlog_format配置项即可,然后重启mysqld服务.

# binary logging - not required for slaves, but recommended
#log-bin=mysql-bin
#
# binary logging format - mixed recommended 
#binlog_format=mixed

2、手动清理

连上mysql,然后执行 

 reset master;  

 

其他关于binlog操作:

  • 可以设置自动清理:
#自动删除binlog
#通过binlog参数(expire_logs_days )来实现mysql自动删除binlog
mysql> show binary logs;
mysql> show variables like 'expire_logs_days';
mysql> set global expire_logs_days=3;
  • 查看binlog内容 :
tail -f mysql-bin.000001 | mysqlbinlog -

mysqlbinlog mysql-bin.000001 | more

 

参考:

http://blog.csdn.net/wyzxg/article/details/7412777

转载于:https://my.oschina.net/pp1/blog/792333

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值