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日志补偿的原理?这部分后面有相关资料在研究,或者再看一次视频?
网友评论