前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL binlog日志大小超过限定范围

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

作者头像
MySQL轻松学
发布2018-03-09 14:26:51
4.2K0
发布2018-03-09 14:26:51
举报
文章被收录于专栏:MYSQL轻松学MYSQL轻松学

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-09-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 MYSQL轻松学 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档