由于源端和目标端主键不一致问题导致的error mapping

昨天,一套新建ogg的rep怎么都起不来,查看report只是提示源端的表和目标端的表mapping 有问题。

由于生产系统信息不能取出,凭记忆叙述下。

        分别desc,取出两端的表结构,一行一行做比对(源端和目标端列不一致,需要列映射),从列类型到长度以及各种对应变换都没有问题。

记录rep目前的seqno和rba号,跳转2个trial,start之后,表rba正常走,stats该rep下的该表发现只有insert,过一会rep进程又abend。

将rep进程改回原来记录的seqno和rba号,start即abend。

          查看discard文件,发现一条该表的update记录,提示是missing key column....

         再次检查param的参数配置,参数文件里明确指定了keycol字段,并且目标端该表的主键也确实是所指定的列。

         那么在这种情况下,提示丢失主键,并且insert的是没有问题的,而更新出现问题,那应该就是出现的主键上,查看源端的主键果真跟目标端的

主键指定的列不一样。rep的params参数中的keycols字段改为源端的主键列即可正常insert和update。

         这个问题主要原因是想当然的以为,源端和目标端的主键是一致的。



你可能感兴趣的:(ogg)