一、问题现象
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);