ogg 复制进程ABENDED,报OGG-01163字段列长度不够解决方法

一.报错ogg复制进程ABENDED‌状态

在这里插入图片描述

二、报错问题分析(检查日志)

# 在ogg命令./ggsci 里执行查看报错
view report sr_hy1

1.查看报错:

2024-12-04 14:10:18  ERROR  OGG-01163 Bad column length (30)specified for column TYPE in table xxx.TEST03, maximum allowable length is 25.

在这里插入图片描述

2.错误分析:

由于源端OGG进行字段类型变长导致(varchar2(25)-> varchar2(30))
源端数据结构变更后未及时重启OGG抽取、投递端进程导致

3.解决方案:

1.【解决方案一】设置ogg从最新记录开始读(可以解决但是会丢失数据)
# 进入ogg命令行
./ggsci
# 重启抽取端进程
stop EXT_HY1
start EXT_HY1
# 重启投递端进程
stop PM_HY1
start PMT_HY1

在这里插入图片描述

# 进入ogg命令行
./ggsci
# 修改当前进程从最新记录开始读
alter sr_hy1,begin now
# 重启复制进程就会恢复
start sr_hy1

在这里插入图片描述
查看进程抽数情况目前重启后跳过异常数据
在这里插入图片描述
插入数据后看到数据已经过来了,插入10条数据
在这里插入图片描述

2.【解决方案二】生成报错表的最新结构信息生成def文件发送到投递端进行处理异常数据。
./ggsci
edit param d_hy1

在这里插入图片描述
把以下代码写入 后保存退出

USERID oggadm@user,PASSWORD "pwd" 
defsfile ./dirdef/d_hyl.def purge
TABLE xxx.T_test03

在这里插入图片描述
到ogg目录下 找到:defgen
在这里插入图片描述
执行以下命令:

./defgen paramfile ./dirprm/d_hy1.prm

如下图标红部分路径下已经生成文件。
文件生成完毕后,把生成文件发送到目标端ogg目录下dirprm目录下(这个我就不展示了利用scp命令)。
在这里插入图片描述
重启源端抽取、投递进程
在这里插入图片描述

目标端复制进程进行修改:

# 根据下面命令进行编辑文件
./ggsci
edit param sr_hy1

添加以下内容进去

SOURCEDEFS ./dirprm/d_hyl.def override

在这里插入图片描述
重启目标端复制进程
在这里插入图片描述
查看异常数据已经处理完成(进程已经恢复):
在这里插入图片描述
异常数据处理完成后去除临时加的配置文件(如配置文件不删除的情况下,后续还有结构变更的话,也不会自己更新过来,会优先使用def文件的结构)

./ggsci
edit param sr_hy1

删除以下内容进去

SOURCEDEFS ./dirprm/d_hyl.def override

重新启动复制进程(修复完成)

stop sr_hy1
start sr_hy1

注意:

1.源端oracle表结构变更后(禁止对表数据进行任何 dml 操作),ogg应及时进行对抽取、投递进程重启后,Oracle才能对数据表(dml)操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

thy的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值