mysql max_binlog_cache_size_MySQL:MGR修改max_binlog_cache_size参数导致异常

###一、问题来源

这是一位朋友的问题,因为前期朋友设置max_binlog_cache_size为8m,后面在线进行了修改了本参数,但是结果导致整个3节点的MGR集群除了primary节点其他两个second节点均掉线。大概的日志如下:

![image.png](https://upload-images.jianshu.io/upload_images/7398834-bcc9282950415b6d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

###二、使用binlog cache的大概流程

这也是我以前写过的一个过程。

- 开启读写事务。

- 执行‘DML’语句,在‘DML’语句第一次执行的时候会分配内存空间给binlog cache缓冲区。

- 执行‘DML’语句期间生成的Event不断写入到binlog cache缓冲区。

- 如果binlog cache缓冲区已经写满了,则将binlog cache缓冲区的数据写入到binlog cache临时文件,同时清空binlog cache缓冲区,这个临时文件名以ML开头。

- 事务提交,binlog cache缓冲区和binlog cache临时文件数据全部写入到binary log中进行固化,释放binlog cache缓冲区和binlog cache临时文件。但是注意此时binlog cache缓冲区的内存空间留用供下次事务使用,但是binlog cache临时文件被截断为0,保留文件描述符。其实也就是IO\_CACHE结构保留,并且保留IO\_CACHE中分配的内存空间和临时文件文件描述符。

- 断开连接,这个过程会释放IO\_CACHE同时释放其持有的binlog cache缓冲区内存以及持有的b

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值