从主数据库到辅助数据库的Golden Gate复制,警告OGG-01154 Oracle GoldenGate Delivery for Oracle,rgg1ab.prm:SQL错误1403

时间:2015-10-16 04:54:13

标签: oracle database-replication

我正在使用黄金门将数据从主要数据复制到次要数据。我已在主数据库中插入记录,但复制会出现错误消息

  

警告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复制在复制时将插入转换为更新。

2 个答案:

答案 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将开始记录所有必要的列,以便唯一标识一行。 注意:这应该在开始复制过程之前完成。