mysql集群不同步_mysql数据库集群出现1236错误导致主库与从库无法同步的

mysql数据库集群出现1236错误导致主库与从库无法同步的

发布时间:2020-02-28 02:50:14

来源:51CTO

阅读:153

作者:o凤舞九天o

/etc/my.cnf中sync_binlog参数设置累积多少个事务数后落盘

说明:

1.数据存到数据库和binlog落盘是同时进行的

2.数据是先存在内存中,达到设置的事务数后才落盘的

3.从库读的是主库的内存中的数据,并非落盘的数据

4.写入数据时,只要主库存活,就写入到主库

d9b9f896d726c5e2ee4d67bf56ea3080.png

过程状态记录:

前提:50个事务一落盘

1.未断电前:主库内存中正在从50进行到60,从库读取主库内存中到58并存入从库

2.断电:主库中50-60的数据存在于内存中,binlog无法落盘,数据没有保存到数据库文件。开始写数据到从库中,数据进行到61,之后数据逐渐写入从库

3.主库重启:主库上的50-60的binlog丢失,数据丢失,数据开始写入主库,binlog记录从50开始。从库从主库内存中读数据,读到50时,从库发现自己已经接收过50的数据,就不再接收,就不进行同步了。此时状态为:只写数据到主库,从库不同步。

4.最终结果:从库中的数据为1-58,61-…,缺少的是58-60的,主库中的数据是1-49,…-…,

完整过程描述:

50个事务后落盘,主库正在写数据,此时断电,内存中写到60,从库从主库内存中读到58,从库读取到58后产生数据到从库上,主库由于未到50个事务,不会存盘。导致50-60之间的事务,未能生成binlog日志到盘上,同时数据也未写入到数据库文件上,导致58-60的数据既不在主库上也不在从库上,丢失。主库重启后,由于盘上记录的数据是到49,因而从50开始记录,此时从库再从主库上读的时候发现自己已经有50了,这样就产生冲突,就无法继续读取主库的数据了。

现象:同步损坏,主库重启后,再写数据,只到主库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值