客户说在向实施GG之后的源库导入数据收到如下的报错:
从这个报错可以看出,为表添加的ALL COLUMN等类型的补充日志导致数据导入失败。
回想Oracle GoldenGate的实施步骤,在做以下操作时,Oracle GoldenGate会根据表的情况添加适当的补充日志:
ADD TRANDATA .;
由于客户的数据库的某些表没有主键或唯一键标识表行的唯一性,所以Oracle GoldenGate自动的为这部分表添加了ALL COLUMN等类型的补充日志,用整个行来标识表行数据的唯一性,这是Oracle GoldenGate正常的行为。
参考Oracle对该错误的解释:
ORA-32588: supplemental logging attribute string exists
Cause: specified supplemental logging attribute exits.
Action: retry the alter/create ddl after removing this supplemental logging attribute.
执行ALTER TABLE XXX DROP SUPPLEMENTAL LOG DATA (ALL) COLUMNS;等命令将表对应的补充日志删除之后再次尝试导入。
当然最好且最简单的办法是执行如下的GoldenGate命令准确的卸载表对应的补充日志:
GGSCI> DELETE TRANDATA .;
--end--
Oracle GoldenGate 系列:Extract 进程的恢复原理
Oracle goldengate的OGG-01004 OGG-1296错误