问题描述
之前同事撘了个ogg进程,一直数据同步没有问题。忽然某一天就报了这种类似的错:
OCI Error ORA-26787: The row with key ("WIP_ENTITY_ID", "ORGANIZATION_ID") = (10556121, 87) does not exist in table ERP.SCC_WIP_DISCRETE_JOBS
ORA-01403: no data found
然后把复制进程dsc撑爆了写不进去了,进程就断掉了。
Oracle GoldenGate Delivery for Oracle, PROD102R.prm: Discard file (/acfs/ogg181_ms/deploy_cdb/var/lib/report/PROD102R.dsc) exceeded max bytes (50000000).
然后同事又重新初始化了一遍,过了几天又报了类似的错,这是什么原因呢
专家解答
reperror default,discard
discard参数的意思,官方文档解释是 Logs the offending operation to the discard file but continue processing the transaction and subsequent transactions.
实际该配置就是要将复制进程中的错误信息输出到discard文件中,但该文件虽然配置了近50M的大小,可错误信息依然没能完全写下,所以你应该进行以下步骤来处理
1、使用view params reppd检查discard的设置
2、分析DISCARDFILE,看看是什么原因导致复制中产生那么多的错误信息
PS:猜测之前的问题,类似ORA-26787: The row with key ("WIP_ENTITY_ID", "ORGANIZATION_ID") = (10556121, 87),是不是还没解决?或者又再度发生类似情况?
这些都要从DISCARDFILE里去查证了
先查出数据为什么不一致,如果找不到问题根源,可考虑重新同步ERP.SCC_WIP_DISCRETE_JOBS表