OGG复制进程报错,存在update set 主键列 is null

一、问题现象

OGG从11.2.0.4 DB抽取,同步至Kafka
进程报错!
观察进程日志:类似如下SQL引起的问题
UPDATE TABLE SET ID =null ,send_time=xxx where id is null;
这个id字段是主键,检查文档暂时未定位到什么原因引发的!源端主键正常。

 

 

二、问题处理

通过上述问题,我们可以得到一些信息:
SQL>update 主键列=null, where条件主键 is null;
可以发现明显不合理,因此这些数据可以忽略!

1.临时解决方法,跳过rba忽略错误数据,但是这个表的错误数据格外的多,100条SQL存在30条update 主键 is null的情况,无法手工跳rba处理;
2.对源端表主键重置,OGG表初始化能解决很多问题,但是代价太大;
3.运维角度,最方便的是使用参数过滤掉错误的数据不应用就行,或者不抽取变化;



参考:

目标端,复制进程过滤掉主键is null的操作:
MAP a.cc,TARGET a.cc,where(ID <> @null);
源端,抽取进程过滤掉主键is null的操作;
TABLE a.cc,where(ID <> @null);

 

posted @ 2020-11-23 14:52  绿茶有点甜  阅读(805)  评论(0)    收藏  举报