前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【MySQL故障处理】 Seconds_Behind_Master= NULL Error_code: 1197

【MySQL故障处理】 Seconds_Behind_Master= NULL Error_code: 1197

作者头像
用户5522200
发布2019-06-02 15:18:01
8290
发布2019-06-02 15:18:01
举报
文章被收录于专栏:lindalinda

版本:mysql 5.6.32 错误描述:

代码语言:javascript
复制
Error_code: 1197
Last_Error: Worker 3 failed executing transaction '352aa3e8-5573-11e6-8010-1866da5c62e5:184599297' at master log mysql-bin.000474,
end_log_pos 13934385; Could not execute Update_rows event on table pay_0003.order_entity_0054; Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storag
e; increase this mysqld variable and try again, Error_code: 1197; handler error HA_ERR_RBR_LOGGING_FAILED; the event's master log mysql-bin.000474, end_log_pos 13934385, Error_code: 1197

处理过程: 根据报错信息,知道是max_binlog_cache_size小了,

解决办法: 临时增加该值后restart slave即可以继续复制线程。

代码语言:javascript
复制
mysql> stop slave;
mysql> set global max_binlog_cache_size=201326592;
mysql> start slave;

关于max_binlog_cache_size请看这里:

如果一个事务需要多于设置值的内存,就会报上面的错。最小4096字节,最大支持4GB(4294967296字节),因为binlog位置点最大4GB,支持动态修改。

解决了问题,继续查找发生问题的原因,生产环境中的该参数设置为64M,当一个事务影响的数据量超过该值时,即会报错。

执行的sql为 insert into table1 select*from table2 where time>'2016-10-01' 形式的多语句事务,查看binlog文件的大小,最大的超过了200M(max_binlog_size设置为50M)。

因此是大事务造成的,大事务还容易造成主从延时的问题,推荐将大事务拆分为小事务执行

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档