数据复制典型错误 - GGS ERROR 160 Use ALLOWNOOPUPDATES to process the update
错误描述:
2010-05-07 10:16:01 GGS ERROR 160 Encountered an update for target table
CASEM.BILLING_ERROR_TEMP, which has no unique key defined. KEYCOLS can be used
to define a key. Use ALLOWNOOPUPDATES to process the update without applying i
t to the target database. Use APPLYNOOPUPDATES to force the update to be applie
d using all columns in both the SET and WHERE clause.
错误分析:
首先确认该表正确添加了附加日志,若附加日志正确则原因为下说述
当Update一条记录但是未修改其中某些字段记录时,Oracle会在日志中记录该Update操作,但是由于数据本身没有改变,可能并没有记录其后影像。此时OGG抽取数据后队列中也没有后影像,导致目标端Replicat无法组成正确SQL
例如,表T中有一条记录其字段C原来值为‘a’,如果update t set c=‘a’ where rowid=‘XXXXXXX’即会产生该情形
解决方法正如错误描述中说述在参数中加入即可继续
ALLOWNOOPUPDATES
注意:该参数是一个内部参数