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 image 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的相關資料做進一步瞭解,在此不復述。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章