侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

mysql binlog导致磁盘爆满

2023-12-09 星期六 / 0 评论 / 0 点赞 / 104 阅读 / 2192 字

问题:在使用mysql大量写入数据时,突然发现无法在继续写入了。登录上机器通过df -lh看到服务器磁盘使用100%. 连接上mysql, 统计一下每个数据库占用的数据大小。发现占用的数据也不过十来

问题:在使用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自动删除binlogmysql> 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

广告 广告

评论区