mysql到ob多对一同步,全量校验失败

【 使用环境 】
【 OB or 其他组件 】OMS
【 使用版本 】4.2.7 CE
【问题描述】mysql分表分库,多对一同步到ob,全量校验失败。源库是4个物理库,同步到OB合并到一个,原来4个库之间有相同的主键,所以同步到目标库时在主键中增加了一个id字段。迁移后全量校验报错如下:

错误码:
VERIFIER-00000002
等级:
ERROR
错误信息:
src omcaccnt.accnt_log → dst omcaccnt.accnt_log match slice index failed,src omcaccnt.accnt_log_20190302 → dst omcaccnt.accnt_log_20190302 match slice index failed,src omcaccnt.rpt_coupon_opsum → dst omcaccnt.rpt_coupon_opsum match slice index failed,src omcaccnt.accnt_batch_20190301 → dst omcaccnt.accnt_batch_20190301 match slice index failed,src omcaccnt.gift_coupon_or…
展开
错误原因:
缺少错误文案描述,请联系 OMS 技术人员解决
解决方案:
缺少错误文案描述,请联系 OMS 技术人员解决

【复现路径】问题出现前后相关操作
【附件及日志】

1 个赞

没有走结构迁移,直接进行全量迁移,两端表结构存在不一致?

1 个赞

用dbcat进行的结构迁移,迁移后给表的主键增加了一个id字段,然后用OMS进行全量迁移+全量校验

1 个赞

源端目的端主键列不一样,目的端是联合主键,比源端多了个id吗

是的,因为源端是4个库,四个库之间有重复数据,这些数据都要保留,所以目的端主键增加了一个自增id字段用来区分这些数据,这种有啥好办法吗?

这张表有其他的非空唯一索引吗

没有

那这种情况没法处理了,全量校验必须要保证源端目的端主键列一致