Slave I/O: Got fatal error 1236

【起因】

一次zabbix报警,从库[Warning] MySQL-repl was down  # 不知道主库/storage空间小于20%时为什么没有触发trigger

 

【从库错误日志】

161103 11:48:56 [ERROR] Slave I/O: Got fatal error 1236 from master when reading data from binary log: 'binlog truncated in the middle of event; consider out of disk space on master; the first event 'v-mysql1-bin.002026' at 362014603, the last event read from './v-mysql1-bin.002026' at 362014762, the last byte read from './v-mysql1-bin.002026' at 362014781.', Error_code: 1236
161103 11:48:56 [Note] Slave I/O thread exiting, read up to log 'v-mysql1-bin.002026', position 362014762

 

【原因】

与主库sync_binlog配置有关,当主库 sync_binlog<>1,MySQL每写N次binary log,系统才会同步到磁盘,但是由于存储日志磁盘空间满而导致MySQL 没有将日志完全写入磁盘,binlog event被截断。

slave 读取该binlog file时就会报错"binlog truncated in the middle of event;

sync_binlog=n,当每进行n次事务提交之后,MySQL将进行一次fsync之类的磁盘同步指令来将binlog_cache中的数据强制写入磁盘。

sync_binlog=0(默认),当事务提交之后,MySQL不做fsync之类的磁盘同步指令刷新binlog_cache中的信息到磁盘,而让Filesystem自行决定什么时候来做同步,或者cache满了之后才同步到磁盘。

 

【解决】

从库重新指向主库下一个可用的binary log并从起始位置开始

stop slave
CHANGE MASTER TO MASTER_LOG_FILE='v-mysql1-bin.002026', MASTER_LOG_POS=4;
start slave

 

参考:

https://www.percona.com/blog/2014/10/08/mysql-replication-got-fatal-error-1236-causes-and-cures/

转载于:https://www.cnblogs.com/metasequoia/p/6026562.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值