![如何修复 Oracle GoldenGate 中的 OGG-01163](https://linux22.com/image/1605504/%E5%A6%82%E4%BD%95%E4%BF%AE%E5%A4%8D%20Oracle%20GoldenGate%20%E4%B8%AD%E7%9A%84%20OGG-01163.png)
我的 *.rpt 文件中有一个错误:
2019-09-26 17:58:56 ERROR OGG-01163 Bad column length (56) specified for column AUTHORISATION_ID in table TCPF.OPERATION, maximum allowable length is 40
当提取开始时,列长度为 40。然后扩展到 200。DDL 未被复制。Replicat 是使用没有目标 DB 的 Java 处理程序创建的,因此这种长度不匹配不会造成问题。
复制程序在此记录处停止异常终止,不会移动。RPT 文件中的以下选项没有帮助:
reperror 01163, ignore
因为这仅适用于 Oracle DB 错误。
请帮忙!
答案1
解决方案。在源数据库上生成源定义文件:
$ ./defgen paramfile dirprm/myschema.prm
myschema.prm
CHARSET UTF-8
DEFSFILE dirprm/myschema.def purge CHARSET UTF-8 FORMAT RELEASE 12.3
userid ***, password ***
NOCATALOG
table MYSCHEMA.*;
将 def 文件复制到目标服务器,并在副本 PRM 文件中添加以下行:
SOURCEDEFS dirprm/myschema.def OVERRIDE
请注意,OVERRIDE 选项是必需的。否则将使用来自跟踪文件的元数据。
启动复制程序,它现在必须正常工作。复制完所有待处理数据后,重新启动源数据库上的 EXTRACT。之后可以从 REPLICAT PRM 文件中删除 SOURCEDEFS 参数。不要忘记重新启动 REPLICAT 进程。