MHA主库宕机position号与从库不一致

 Concat binary/relay logs from mysql-bin.000002 pos 976 to mysql-bin.000002 EOF into /var/tmp/saved_binlog_binlog1_20200418223125.binlog ..

ERROR: Error in Log_event::read_log_event(): 'read error', data_len: 770, event_type: 0

 Concat succeeded.

查看主库?确实是976结尾的

 976 | GRANT ALL PRIVILEGES ON *.* TO 'mha'@'%' IDENTIFIED WITH 'mysql_native_password' AS '*F4C9AC49A736981AE2739FC2F4A1FD92B4F07929'    |

| mysql-bin.000002 | 976 | Stop          |        7 |        999 |                                                                                                                                    |

----从库的position与主库不一致?

核查发现  从库和主库确实不一致,但是这个是不是上面错误的原因,我觉得不是,具体等我测试了在说。 

主库和从库position号不一致的原因是:主库修改了密码:从库也修改了密码,分别记录到了binlog,从库binlog多记录了一次,因为复制了主库改密码的binlog.

从新搭建主从, 主从都未修改密码,让主从position号保持一致,然后模拟主库宕机,进行 主从切换,发现日志并没有出现刚才的错误,故该问题得到解决。


正常日志


报错日志


反思:这里我认为MHA的设计应该根据GTID号来比对比较正确,position号会存在误差。

问题?从库直接拿现在的master里面的已接受的position点以后的从主库拿到从库就好了,难道是发生了冲突,因为从库的position大于主库?

     1)反思,还是使用GTID就好了。

       2)MHA日志补偿的原理?这部分后面有相关资料在研究,或者再看一次视频?

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容