【 使用环境 】测试环境
【 OB or 其他组件 】 OceanBase 4.2
【 使用版本 】
【问题描述】GitHub - oceanbase/canal: 阿里巴巴 MySQL binlog 增量订阅&消费组件 v1.1.7
在mysql数据源端存在触发器的情况下,使用canal v1.1.7 同步mysql数据到OceanBase 4.2 目标数据库,在对源端表上的update、delete 操作时,同步工具报错
【复现路径】
源数据库mysql 5.7.44-log
目标端数据库OB 4.2 社区版
Canal V1.1.7
mysql端建表和触发器语句
CREATE TABLE t1 (
id int(11) primary key not null ,
name varchar(100)
);
CREATE TABLE t1_log (
id int(11) ,
name varchar(100)
);
drop trigger if exists insert_t1_trigger;
drop trigger if exists insert_t1_trigger;
DELIMITER #
CREATE TRIGGER INSERT_T1_TRIGGER
AFTER INSERT ON t1
FOR EACH ROW BEGIN
INSERT INTO t1_log(id,name)
VALUES(new.id,new.name);
END;#
DELIMITER ;
drop trigger if exists update_t1_trigger;
drop trigger if exists UPDATE_t1_TRIGGER;
DELIMITER #
CREATE TRIGGER UPDATE_T1_TRIGGER
AFTER UPDATE ON t1
FOR EACH ROW BEGIN
UPDATE t1_log SET name
=new.name where id=old.id;
END;#
DELIMITER ;
drop trigger if exists delete_t1_trigger;
drop trigger if exists DELETE_t1_TRIGGER;
DELIMITER #
CREATE TRIGGER DELETE_T1_TRIGGER
AFTER DELETE ON t1
FOR EACH ROW BEGIN
DELETE FROM t1_log where id
= old.id;
END;#
DELIMITER ;
然后设置Canal 同步到OB 4.2 版本,
在 mysql上往t1 表进行update 时候出现如图错误
在 mysql上往t1 表进行delete 时候,语句:delete from t1 where id =3
源端mysql 没问题,在OB目标端整个表的数据删除
请大佬帮忙协助排查问题,谢谢