replace into 引发的从库auto_increment不自增问题

Posted gered

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了replace into 引发的从库auto_increment不自增问题相关的知识,希望对你有一定的参考价值。

【问题】replace into 引发的从库auto_increment不自增问题

 mysql主从,主上的表有唯一索引,然后用replace into 对唯一索引列的值修改了,auto_increment是会增加的,但是从库并不会同步auto_increment值,有什么方法可以规避这个吗 。
 一旦涉及replace into,主从的表auto_increment就会不一样,这样后期如果主从切换就会有问题 
 

【分析】

 正常insert肯定是会变的,replace into并不是bug,如果值是不一样的那就和正常的insert是一样的,我说的场景是replace into的值是唯一索引列值一样的。
这种情况主库上是先delete后再insert,然后binlog中的表现形式是update的形式,所以主库的auto_increment会增加,但是从库只是update所以auto_increment不增加 
 
 我看网上的办法是

loveflea

建议:
1、将新表b里有的旧表a里没有的记录,保存到c表;并删除b里对应的记录!
2、insert into a select * from b;
3、update a,b set a.price=b.price where 技术图片a.name=技术图片b.name
 

【最终解决】

我测试了一下,把主库的binlog_rows_query_log_events打开就可以了同步auto_increment 
 
 
摘录自群问题:mysql dba技术交流群

以上是关于replace into 引发的从库auto_increment不自增问题的主要内容,如果未能解决你的问题,请参考以下文章

mysqldump 创建基于GTID的从库

基础 mysqldump 创建基于GTID的从库

腾讯云数据库备用-基于GTID复制的mysql作为CDB的从库

mysql 第三十二篇文章~并发导致的从库延迟问题

使用innobackup实现 基于GTID的从库搭建

mysql5.6以上版本的从库延迟复制