oracle pga 1407,ogg replicat OGG-00869 OCI Error ORA-01407 OGG-01154 SQL error 1407

replicat进程报错,信息如下:2014-03-15 13:31:29 WARNING OGG-00869 OCI Error ORA-01407: cannot update ("ERP"."TB_GOS_ACCOUNT_O_LOTINVEN"."INVBALQTY") to NULL (status = 1407). UPDATE "ERP"."TB_GOS_ACCOUNT_O_LOTINVEN" SET "LASTMODIFYTIME" = :a1,"INVBALQTY" = :a2 WHERE "PK" = :b0.

2014-03-15 13:31:29 WARNING OGG-01004 Aborted grouped transaction on 'ERP.TB_GOS_ACCOUNT_O_LOTINVEN', Database error 1407 (OCI Error ORA-01407: cannot update ("ERP"."TB_GOS_ACCOUNT_O_LOTINVEN"."INVBALQTY") to NULL (status = 1407). UPDATE "ERP"."TB_GOS_ACCOUNT_O_LOTINVEN" SET "LASTMODIFYTIME" = :a1,"INVBALQTY" = :a2 WHERE "PK" = :b0).

2014-03-15 13:31:29 WARNING OGG-01003 Repositioning to rba 347439 in seqno 19401.

2014-03-15 13:31:29 WARNING OGG-01154 SQL error 1407 mapping HBQERP.TB_GOS_ACCOUNT_O_LOTINVEN to ERP.TB_GOS_ACCOUNT_O_LOTINVEN OCI Error ORA-01407: cannot update ("ERP"."TB_GOS_ACCOUNT_O_LOTINVEN"."INVBALQTY") to NULL (status = 1407). UPDATE "ERP"."TB_GOS_ACCOUNT_O_LOTINVEN" SET "LASTMODIFYTIME" = :a1,"INVBALQTY" = :a2 WHERE "PK" = :b0.

2014-03-15 13:31:29 WARNING OGG-01003 Repositioning to rba 347439 in seqno 19401.

其中,表TB_GOS_ACCOUNT_O_LOTINVEN中字段INVBALQTY为not null,并且设有default value;而上面的SQL是将TB_GOS_ACCOUNT_O_LOTINVEN"."INVBALQTY"字段 更新为NULL。

查看trail 文件信息:发现捕获字段有PK、LASTMODIFYTIME、INVBALQTY三个字段的信息,但是INVBALQTY 字段捕获到的信息没值,为空。

看了表的属性后,追查到做了数据变更的源SQL语句,更新INVBALQTY 字段为0,当时猜想这里的0应该跟字段上属性default value 设置有关。

其实这是ogg 11R2 的CDR(Conflict Detection and Resolution,当前环境OGG的版本是11.2.0.1)参数设置问题导致的,加上参数NOCOMPRESSUPDATES,使当前更新的SQL完整捕获到列INVBALQTY的值。问题得以解决。原参数文件配置中已添加过NOCOMPRESSDELETES。 以下是CDR的参数要求:

The extract capture for CDR should include the following

Force extract to capture the before p_w_picpath using GETBEFORECOLS in the TABLE parameter.

Use NOCOMPRESSDELETES and NOCOMPRESSUPDATES in the extract parameter file so that to have extract write a full record in a trail instead of the changed columns only.

其它的可以参考ogg的相关资料做进一步了解,在此不复述。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值