MySQL binlog日志大小超过限定范围

my.cnf中有两个参数设置:

  • expire_logs_days = 7 #binlog保留时间7天
  • max_binlog_size = 1G #binlog大小

问题描述:

mysql binlog大小限制1G,但是实际却达22G

分析原因:

  • mysqld在每个二进制日志名后面添加一个数字扩展名,每次你启动服务器或刷新日志时该数字则增加。如果当前的日志大小达到max_binlog_size,还会自动创建新的二进制日志。
  • 如果你正使用大的事务,二进制日志还会超过max_binlog_size:事务全写入一个二进制日志中,不会写入不同的二进制日志中,所以会出现binlog日志大小超过限定范围。

解决方案:

  • 在执行大事物前关闭 set session sql_log_bin=0; (默认是开启的)。千万不要不假思索的加上 global 修饰符(set global sql_log_bin=0),这样会导致所有在Master数据库上执行的语句都不记录binlog,这肯定不是你想要的结果。
  • 根本解决还是需要拆分大事物。此时,我们需要查看哪个大事物导致,对应 去处理。可以进行分批commit。

注意:

5.5.5版本后不再支持 set @@session.sql_log_bin 方式设置在事物或子查询中

Beginning with MySQL 5.5.5, it is no longer possible to set @@session.sql_log_bin within a transaction or subquery. (Bug #53437)

http://dev.mysql.com/doc/refman/5.5/en/set-sql-log-bin.html

原文发布于微信公众号 - MYSQL轻松学(learnmysql)

原文发表时间:2016-09-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Hongten

python开发_filecmp

filecmp模块用于比较文件及文件夹的内容,它是一个轻量级的工具,使用非常简单。python标准库还提供了difflib模块用于比较文件的内容。关于diffl...

1042
来自专栏康怀帅的专栏

GitHub Pages 常见问题

本文列举了一些使用 GitHub Pages 遇到的问题及其解决方法。 资源 404 你可以使用以下方法中的一种来解决该问题。 禁用 jekyll 以 _下划线...

3033
来自专栏技术博文

在vim中快速复制粘贴多行

用vim写代码时,经常遇到这样的场景,复制多行,然后粘贴。 我现在这样做: 1. 将光标移动到要复制的文本开始的地方,按V(是大写V)进入可视模式。 2. 将光...

57610
来自专栏赵俊的Java专栏

Python 文件操作

2763
来自专栏JetpropelledSnake

Python入门之面向对象module,library,package之间区别

背景 Python中有一些基本的名词,很多人,尤其是一些初学者,可能听着就很晕。 此处,简单总结一下,module,library,package之间的大概区别...

31511
来自专栏Petrichor的专栏

pycharm: 跳转 & 回退

2492
来自专栏Small Code

【Python】numpy 中的 copy 问题详解

这篇文章本是我在 segmentfault 上的一个回答,但是越来越觉得有必要单独拿出来,毕竟这个问题挺常见的。具体可参看 numpy 官方文档 。 正文 nu...

21610
来自专栏野路子程序员

从已有安装包(vendor)恢复 composer.json

5275
来自专栏ImportSource

PATH 和 CLASSPATH 的区别

java中的path和classpath是很多java初入者比较困惑的两个变量。本文简单列举二者区别。 PATH and CLASSPATH的区别 1)第一个主...

90612
来自专栏mySoul

Node.js多进程

使用子进程的执行命令,缓存子进程的输出。并将子进程的输出以回调函数参数的形式进行返回

1590

扫码关注云+社区

领取腾讯云代金券