五.如何跳过一个GTID
环境见系列一
5.1 创建表,模拟数据
#主机上
create table t_test (id int primary key ,name varchar(10));
insert into t_test values(1,'aa'),(2,'bb'),(3,'cc');
#备机上插入一条,模拟冲突
insert into t_test values(4,'dd');
5.2 模拟冲突
#主机上
insert into t_test values(4,'dd');
#备机上查看复制状态
show slave status \G;
5.3 通过上图,可以定位到冲突的位置,mysqlbinlog查看具体的语句
#主库上mysqlbinlog 查看相关语句
mysqlbinlog --start-position=930 --stop-position=1193 -d test --base64-output=DECODE-ROWS -v /MySQL/my3306/log/binlog/binlog.000018
5.4 基于GTID模式的复制,跳过一个事务,需要利用一个空事务。
stop slave;
set GTID_NEXT='9760cb92-693e-11e8-85bf-000c29b55cf0:11';
#开启一个空事务
begin;commit;
SET GTID_NEXT='AUTOMATIC';
start slave ;
#查看复制是否正常
mysql> show slave status \G;
*************************** 1. row ***************************
Slave_IO_S