2016-12-17 09:18:57 ERROR OGG-01161 Oracle GoldenGate Delivery for Oracle, rpssyx.prm: Bad column index (29) specified for table EPM_SC.D_MEAS_BOX, max columns = 29.
2016-12-17 09:18:58 ERROR OGG-01668 Oracle GoldenGate Delivery for Oracle, rpssyx.prm: PROCESS ABENDING.
2016-12-17 09:18:57 ERROR OGG-01161 Oracle GoldenGate Delivery for Oracle, rpssyx.prm: Bad column index (29) specified for table EPM_SC.D_MEAS_BOX, max columns = 29.
2016-12-17 09:18:58 ERROR OGG-01668 Oracle GoldenGate Delivery for Oracle, rpssyx.prm: PROCESS ABENDING.
原因:源端与目标的表结构不一致
OGG-01161: Bad column index ({2,number,0}) specified for table {0}, max columns =
{1,number,0}.
Cause: Oracle GoldenGate encountered a reference to a column ordinal that is not
within an expected range.
Action: Verify that the definitions for the specified table are correct, and verify the
correctness of the MAP statement for the specified table.
OGG-01161错误是因为源表结构发生了变化,导致同步出错。
如果源端与目标端同构,则检查两端表的结构是否一致,索引等是否一致。如果源端与目标端异构,且目标端使用了sourcedefs参数,则需要在源端重新生成def定义文件传送到目标端。原因应该是在没有停掉投递进程的情况下源端的表结构做出了更改,就算后续把目标端的表结构更改一致后还是会报错。我当时是对单表进行了重做,楼主现在有好的解决方法吗?个人觉得预防就是在源端更变表结构的时候停止投递进程(此时投递进程没有延迟)