我正在使用黄金门将数据从主要数据复制到次要数据。我已在主数据库中插入记录,但复制会出现错误消息
警告OGG-01154 Oracle GoldenGate Delivery for Oracle,rgg1ab.prm:SQL错误1403将primaryDB_GG1.TB_myTableName映射到secondaryDB.TB_myTableName OCI错误ORA-01403:未找到数据,SQL<更新......
update语句包含where子句中table的所有列。 虽然应用程序中没有这样的更新语句,但在where子句中有这么多列。
你能帮忙解决这个问题。为什么Golden Gate复制在复制时将插入转换为更新。
答案 0 :(得分:0)
我知道这个很老了,但是如果你还没有找到解决方案,请提供你的prm文件。您可以在其中使用基于目标数据库中已存在的PK将插入转换为更新的参数。很可能设置了手工分支或CDR。
答案 1 :(得分:0)
对于复制,您可能已在源数据库中启用了事务日志。现在,您需要从ggsci运行:
" ADD TRANDATA schema_name.table_name,COLS(...)"
在COLS部分中,您需要提及可用于标识唯一记录的列/列(逗号分隔)(您可以提及唯一的索引列(如果存在))。如果表上没有唯一索引,并且您不确定哪些列可用于唯一标识行,那么只需从ggsci运行:
" ADD TRANDATA schema_name.table_name"
然后,Golden gate将开始记录所有必要的列,以便唯一标识一行。 注意:这应该在开始复制过程之前完成。