ogg 12c OGG-01163
数据同步报错:
2017-07-03 12:44:36 ERROR OGG-01163 Oracle GoldenGate Delivery for Oracle, rora_t1.prm: Bad column length (343) specified for column BQJL in table CLINICS.ZY_NURSING, maximum allowable length is 300.
2017-07-03 12:44:36 ERROR OGG-01668 Oracle GoldenGate Delivery for Oracle, rora_t1.prm: PROCESS ABENDING.
问题分析与定位:
1.主库的ogg相关进程未被停止的情况下,研发在主库更改了字段 BQJL 长度。
2.手动将从库的 ZY_NURSING.BQJL 长度更改为 1000
3.启动从库复制进程,仍然报相同的错误 OGG-01163
4.寻求相关案例,针对 OGG-01163解决方案 都是手动指定表的定义文件。观察日志发现,针对手动指定表的定义文件无效。日志为:
WARNING OGG-02761 , rora_t1.prm: Source definitions file, dirdef/source.def, is ignored because trail file dirdat/rp000000004 contains table definitions
5.总结,针对OGG 12C, 从库使用的表的定义文件是从主库传递过来的,不识别手动指定的。而主库的复制进程一直未被重新启动过,所读的表的定义文件一直是BQJL被研发修改之前的文件。
解决方案:
1.停掉主从库的OGG
2.删掉从库ZY_NURSING
3.用expdp将主库的ZY_NURSING迁移至从库
4.在从库进程参数文件中暂时过滤表 ZY_NURSING
5.启动从库复制进程
6.在从库进程参数文件中 删除过滤 ZY_NURSING
7.启动 主从库的相关复制进程