MySQL 主从幂等复制slave_exec_mode=IDEMPOTENT

MySQL slave_exec_mode 参数用于控制主从复制数据冲突时的处理策略,可选值有STRICT和IDEMPOTENT,分别代表严格模式和幂等模式,默认值为STRICT,该参数可动态调整。

  • STRICT,严格模式
  • IDEMPOTENT,幂等模式

默认STRICT模式下,从库复制过程中,发现数据冲突,会立即报错,并中断复制线程。设置为IDEMPOTENT,遇到主键或唯一键冲突以及主键不存在时,并不会报错,会直接覆盖数据或者忽略数据不存在,主从复制仍然正常进行。设置这个参数将会立即生效,并不需要重启复制。

一、IDEMPOTENT幂等复制测试

  • MySQL 版本 5.7.19
  • binlog_format:ROW

表结构:id主键,name varchar(50)

CREATE TABLE tb (   id int(11) NOT NULL,   name varchar(50) DEFAULT NULL,   PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4