结论:不论是严格模式还是非严格模式情况,主库更新与从库不同的值时,在有主键情况下,不影响复制进程,从库对应主键正常同步主库的值,主要受slave_rows_search_algorithms参数的影响。该现象问AI后,发现这是percona的优化(AI真强大)
优化链接:当前的文档未找到,但是豆包给的:并且豆包还截图了,估计是被投喂过原文
https://docs.percona.com/percona-server/5.7/performance/row-based_replication_optimizations.html

验证如下: 版本:percona 5.7.24-27-20180711-log
非严格模式更新
从库:非严格模式,主库更新于从库不同的数据是,查看同步情况
主从数据:
主库插入一条新数据进行测试
从库对id=4的数据进行变更
此时主从id=4的ts值不一致,主库继续变更,查看从库数据与复制情况
主库变更:

从库情况:
发现主从复制正常:从库数据与主库恢复一致
严格模式:从库sql_mode改为严格模式STRICT_TRANS_TABLES后,重启复制进程,发现现象与上面一致。
--后续排查,上面问题询问AI-豆包,给的答案是percona5.7的优化与slave_rows_search_algorithms相关
修改参数:set global slave_rows_search_algorithms='TABLE_SCAN',重启主从复制,立即出现报错情况(从库id=1的字段在实时更新)
该参数改回时:set global slave_rows_search_algorithms='TABLE_SCAN,INDEX_SCAN'; 重启主从复制,主从复制正常,从库数据正常更新
注:其他版本暂未测试
















