Goldengate Replicat Abends With ORA-00001处理方法
当GoldenGate复制进程(Replicat)在目标数据库上遇到ORA-00001唯一性冲突错误时,可以采取以下常见解决方法:
2023-1-617:57:36 WARNING OGG-02544 Unhandled error (ORA-00001: unique constraint (.) violated
ORA-00001: unique constraint (<OWNER>.<NAME>) violated) while processing the record at SEQNO 936, RBA 67975402 in Integrated mode. REP
LICAT will retry in Direct mode.
2023-1-6 10:47:53284-080 WAMMG 0G-0100 0racle Goldenbate Delivery for 0racle, ms,pm: Aborted grouped tramsaction n XXXXXXXXXXISTORZ
database error 1 (OCI Error 0RA-0001: umique constraint xxxxxxxxx PK violated statug = 1),SQL <INSPRT INO XXXXXXXXX
1, 是确认源库与目标库主键列是否一致
检查数据冲突:首先,需要检查目标数据库中的数据冲突。使用SQL查询或GoldenGate的日志文件来确定冲突的具体数据行。确认是否存在重复的数据或唯一性约束冲突。查看源库报错主键列与目标库是否一致,报错数据中会提示唯一约束名称,和当前的SQL, 如果是绑定变量显示,继续使用下面的方法,但目标库的约束应该和源库保持一致,或宽松于源库。
2, 配置discard文件REPERROR
增加ora-1错误不会终止应用进程,而是写入discard文件,继续应用。
discardfile ./dirrpt/r_xxxxxx.dsc,append,megabytes 4095
REPERROR (-1, DISCARD)
注:REPERROR 可以支持DISCARD, IGNORE, EXCEPTION;错误代码是”-“号开头, 重启replicat进程,错误会写进discard文件.
3, 配置showsyntax参数
应用进程配置showsyntax参数,重启应用进程,可以在applied前打印出当前执行的SQL,也可以帮助当前报错的原因。
4, logdump分析当前值
view report 查看当前应用到的位置,报错中有提示RBA和序列号,可以查看replicat的文件名,分析日志
Logdump 1 > open C:GoldenGatedirdat/1p000003921 (use your filename here) Logdump 2 > ghdr on logdump 3 > detail on logdump 4 > detail data logdump 5 > ggstoken on logdump 6 > ggstoken detail logdump 7 > pos 4982061 (use your RBA here) logdump 8 > n
根据当前的值,处理目标库中的数据,或者跳过当前事务,next
GGSCI (ogg-sv-uat) 12> alter replicat RMSS2001 extrba 4985338 GGSCI (ogg-sv-uat) 12> start replicat RMSS2001
如果以上方法无法解决问题,建议联系我们(www.anbob.com)支持团队寻求进一步的帮助.
— over —
对不起,这篇文章暂时关闭评论。