OGG-00918 錯誤處理


廢話不多說,先來看ggserr.log報錯部分

是replicate進程應用的時候報錯

2020-07-09 17:05:31 INFO OGG-00996 Oracle GoldenGate Delivery for Oracle, rep_zwa.prm: REPLICAT REP_ZWA started.
2020-07-09 17:05:31 INFO OGG-02243 Oracle GoldenGate Delivery for Oracle, rep_zwa.prm: Opened trail file ./dirdat/accta/zw000000014 at 2020-07-09 17:05:31.730231.
2020-07-09 17:05:31 WARNING OGG-02760 Oracle GoldenGate Delivery for Oracle, rep_zwa.prm: ASSUMETARGETDEFS is ignored because trail file ./dirdat/accta/zw000000014 contains table definitions.
2020-07-09 17:05:31 INFO OGG-03522 Oracle GoldenGate Delivery for Oracle, rep_zwa.prm: Setting session time zone to source database time zone '+08:00'.
2020-07-09 17:05:31 INFO OGG-03506 Oracle GoldenGate Delivery for Oracle, rep_zwa.prm: The source database character set, as determined from the trail file, is we8iso8859p1.
2020-07-09 17:05:31 INFO OGG-06505 Oracle GoldenGate Delivery for Oracle, rep_zwa.prm: MAP resolved (entry rateparam.BILLING_DEF): map "RATEPARAM"."BILLING_DEF" target "CCJH".rateparam.BILLING_DEF.
2020-07-09 17:05:31 WARNING OGG-06439 Oracle GoldenGate Delivery for Oracle, rep_zwa.prm: No unique key is defined for table BILLING_DEF. All viable columns will be used to represent the key, but may not guarantee uniqueness. KEYCOLS may be used to define the key.
2020-07-09 17:05:31 INFO OGG-02756 Oracle GoldenGate Delivery for Oracle, rep_zwa.prm: The definition for table RATEPARAM.BILLING_DEF is obtained from the trail file.
2020-07-09 17:05:31 INFO OGG-06511 Oracle GoldenGate Delivery for Oracle, rep_zwa.prm: Using following columns in default map by name: EVENT_ID, BILLING_COND, EXPR_TYPE, ITEM_EXPR, ITEMCODE, ITEMTYPE, ITEMADD_TYPE, ITEMADD_EXPR, START_CYCLE, END_CYCLE, TEMPITEM_FLAG, ITEM_UNIT, PAYPLAN_FLAG, G_BILLING_COND, G_ITEMADD_EXPR, G_ITEM_EXPR, RULEID, NEXTRULEID, PROCSCHEMAID, PROCEVENTID, RULENAME, FEE_ID, SPLITTYPE, UNIQUE_ID, ROUNDTYPE.
2020-07-09 17:05:31 ERROR OGG-00918 Oracle GoldenGate Delivery for Oracle, rep_zwa.prm: Key column SHOW_ZERO_FEE_FLAG is missing from map.
2020-07-09 17:05:31 ERROR OGG-01668 Oracle GoldenGate Delivery for Oracle, rep_zwa.prm: PROCESS ABENDING.
2020-07-09 17:05:31 INFO OGG-00975 Oracle GoldenGate Manager for Oracle, mgr.prm: Cannot create process '/openv/ogg/ogg12/replicat'. Child process is no longer alive.
2020-07-09 17:05:31 INFO OGG-00975 Oracle GoldenGate Manager for Oracle, mgr.prm: startER failed.
2020-07-09 17:05:31 WARNING OGG-01742 Oracle GoldenGate Command Interpreter for Oracle: Command sent to MGR MGR returned with an ERROR response.

 

OGG-06511,OGG-00918是常見的表結構不一致問題

日志中也明顯報出列名 Key column SHOW_ZERO_FEE_FLAG is missing from map.

 

在數據庫中查看該表結構
SQL> @desc RATEPARAM.BILLING_DEF
Name Null? Type
------------------------------- -------- ----------------------------
1 EVENT_ID NOT NULL NUMBER(8)
2 BILLING_COND VARCHAR2(512)
3 EXPR_TYPE NOT NULL NUMBER(1)
4 ITEM_EXPR NOT NULL VARCHAR2(128)
5 ITEMCODE NOT NULL VARCHAR2(32)
6 ITEMTYPE NOT NULL NUMBER(1)
7 ITEMADD_TYPE NOT NULL NUMBER(1)
8 ITEMADD_EXPR VARCHAR2(128)
9 START_CYCLE NOT NULL NUMBER(8)
10 END_CYCLE NOT NULL NUMBER(8)
11 TEMPITEM_FLAG NOT NULL NUMBER(1)
12 ITEM_UNIT NOT NULL NUMBER(2)
13 PAYPLAN_FLAG NOT NULL NUMBER(1)
14 G_BILLING_COND VARCHAR2(512)
15 G_ITEMADD_EXPR VARCHAR2(128)
16 G_ITEM_EXPR VARCHAR2(512)
17 RULEID NOT NULL NUMBER(4)
18 NEXTRULEID NOT NULL NUMBER(4)
19 PROCSCHEMAID NOT NULL NUMBER(5)
20 PROCEVENTID NOT NULL NUMBER(4)
21 RULENAME VARCHAR2(32)
22 FEE_ID NUMBER(9)
23 SPLITTYPE NOT NULL NUMBER(1)
24 UNIQUE_ID NOT NULL NUMBER(10)
25 ROUNDTYPE NUMBER(1)
26 SHOW_ZERO_FEE_FLAG NUMBER(1)

 

查看最后一次DDL時間   dba_objects視圖

SQL> @o rateparam.BILLING_DEF

owner object_name SUBOBJECT_NAME object_type status OID D_OID CREATED LAST_DDL_TIME
------------------------- ------------------------------ -------------------------------------------------------------------------------------------------------------------------------- ------------------ --------- ---------- ---------- ----------------- -----------------
RATEPARAM BILLING_DEF TABLE VALID 142586 142586 20200623 03:49:29 20200624 09:14:09

 

查看源端該表的結構和最后一次DDL時間

SQL> @desc rateparam.BILLING_DEF
Name Null? Type
------------------------------- -------- ----------------------------
1 EVENT_ID NOT NULL NUMBER(8)
2 BILLING_COND VARCHAR2(512)
3 EXPR_TYPE NOT NULL NUMBER(1)
4 ITEM_EXPR NOT NULL VARCHAR2(128)
5 ITEMCODE NOT NULL VARCHAR2(32)
6 ITEMTYPE NOT NULL NUMBER(1)
7 ITEMADD_TYPE NOT NULL NUMBER(1)
8 ITEMADD_EXPR VARCHAR2(128)
9 START_CYCLE NOT NULL NUMBER(8)
10 END_CYCLE NOT NULL NUMBER(8)
11 TEMPITEM_FLAG NOT NULL NUMBER(1)
12 ITEM_UNIT NOT NULL NUMBER(2)
13 PAYPLAN_FLAG NOT NULL NUMBER(1)
14 G_BILLING_COND VARCHAR2(512)
15 G_ITEMADD_EXPR VARCHAR2(128)
16 G_ITEM_EXPR VARCHAR2(512)
17 RULEID NOT NULL NUMBER(4)
18 NEXTRULEID NOT NULL NUMBER(4)
19 PROCSCHEMAID NOT NULL NUMBER(5)
20 PROCEVENTID NOT NULL NUMBER(4)
21 RULENAME VARCHAR2(32)
22 FEE_ID NUMBER(9)
23 SPLITTYPE NOT NULL NUMBER(1)
24 UNIQUE_ID NOT NULL NUMBER(10)
25 ROUNDTYPE NUMBER(1)
26 SHOW_ZERO_FEE_FLAG NUMBER(1)

SQL> @o rateparam.BILLING_DEF

owner object_name object_type status OID D_OID CREATED LAST_DDL_TIME
------------------------- ------------------------------ ------------------ --------- ---------- ---------- ----------------- -----------------
RATEPARAM BILLING_DEF TABLE VALID 1930555 2257144 20140322 22:54:00 20200623 00:30:15

 

可以發現源端表結構和目標端是一致的,但源端最后一次ddl時間是20200623 00:30:15   目標端是20200624 09:14:09  相差8個多小時

由此可以推測到是目標端應用trail日志時,未追上部分trail日志中還沒有SHOW_ZERO_FEE_FLAG 列的信息,所以報錯

解決辦法是,我們先在目標端刪掉該列

SQL> alter table rateparam.BILLING_DEF drop column SHOW_ZERO_FEE_FLAG;

Table altered.

再嘗試啟動應用進程,發現依舊報錯

 

020-07-09 17:18:28 INFO OGG-00996 Oracle GoldenGate Delivery for Oracle, rep_zwa.prm: REPLICAT REP_ZWA started.
2020-07-09 17:18:28 INFO OGG-02243 Oracle GoldenGate Delivery for Oracle, rep_zwa.prm: Opened trail file ./dirdat/accta/zw000000014 at 2020-07-09 17:18:28.735043.
2020-07-09 17:18:28 WARNING OGG-02760 Oracle GoldenGate Delivery for Oracle, rep_zwa.prm: ASSUMETARGETDEFS is ignored because trail file ./dirdat/accta/zw000000014 contains table definitions.
2020-07-09 17:18:28 INFO OGG-03522 Oracle GoldenGate Delivery for Oracle, rep_zwa.prm: Setting session time zone to source database time zone '+08:00'.
2020-07-09 17:18:28 INFO OGG-03506 Oracle GoldenGate Delivery for Oracle, rep_zwa.prm: The source database character set, as determined from the trail file, is we8iso8859p1.
2020-07-09 17:18:28 INFO OGG-06505 Oracle GoldenGate Delivery for Oracle, rep_zwa.prm: MAP resolved (entry rateparam.BILLING_DEF): map "RATEPARAM"."BILLING_DEF" target "CCJH".rateparam.BILLING_DEF.
2020-07-09 17:18:28 WARNING OGG-06439 Oracle GoldenGate Delivery for Oracle, rep_zwa.prm: No unique key is defined for table BILLING_DEF. All viable columns will be used to represent the key, but may not guarantee uniqueness. KEYCOLS may be used to define the key.
2020-07-09 17:18:28 INFO OGG-02756 Oracle GoldenGate Delivery for Oracle, rep_zwa.prm: The definition for table RATEPARAM.BILLING_DEF is obtained from the trail file.
2020-07-09 17:18:28 INFO OGG-06511 Oracle GoldenGate Delivery for Oracle, rep_zwa.prm: Using following columns in default map by name: EVENT_ID, BILLING_COND, EXPR_TYPE, ITEM_EXPR, ITEMCODE, ITEMTYPE, ITEMADD_TYPE, ITEMADD_EXPR, START_CYCLE, END_CYCLE, TEMPITEM_FLAG, ITEM_UNIT, PAYPLAN_FLAG, G_BILLING_COND, G_ITEMADD_EXPR, G_ITEM_EXPR, RULEID, NEXTRULEID, PROCSCHEMAID, PROCEVENTID, RULENAME, FEE_ID, SPLITTYPE, UNIQUE_ID, ROUNDTYPE.
2020-07-09 17:18:28 INFO OGG-06510 Oracle GoldenGate Delivery for Oracle, rep_zwa.prm: Using the following key columns for target table CCJH.RATEPARAM.BILLING_DEF: EVENT_ID, BILLING_COND, EXPR_TYPE, ITEM_EXPR, ITEMCODE, ITEMTYPE, ITEMADD_TYPE, ITEMADD_EXPR, START_CYCLE, END_CYCLE, TEMPITEM_FLAG, ITEM_UNIT, PAYPLAN_FLAG, G_BILLING_COND, G_ITEMADD_EXPR, G_ITEM_EXPR, RULEID, NEXTRULEID, PROCSCHEMAID, PROCEVENTID, RULENAME, FEE_ID, SPLITTYPE, UNIQUE_ID, ROUNDTYPE.
2020-07-09 17:18:28 WARNING OGG-01503 Oracle GoldenGate Delivery for Oracle, rep_zwa.prm: Aborting BATCHSQL transaction. Mapping error.
2020-07-09 17:18:28 WARNING OGG-01137 Oracle GoldenGate Delivery for Oracle, rep_zwa.prm: BATCHSQL suspended, continuing in normal mode.
2020-07-09 17:18:28 WARNING OGG-01003 Oracle GoldenGate Delivery for Oracle, rep_zwa.prm: Repositioning to rba 182206555 in seqno 14.
2020-07-09 17:18:28 WARNING OGG-01431 Oracle GoldenGate Delivery for Oracle, rep_zwa.prm: Aborted grouped transaction on 'CCJH.RATEPARAM.BILLING_DEF', Mapping error.
2020-07-09 17:18:28 WARNING OGG-01003 Oracle GoldenGate Delivery for Oracle, rep_zwa.prm: Repositioning to rba 182206555 in seqno 14.
2020-07-09 17:18:28 WARNING OGG-01151 Oracle GoldenGate Delivery for Oracle, rep_zwa.prm: Error mapping from RATEPARAM.BILLING_DEF to CCJH.RATEPARAM.BILLING_DEF.
2020-07-09 17:18:28 ERROR OGG-01296 Oracle GoldenGate Delivery for Oracle, rep_zwa.prm: Error mapping from RATEPARAM.BILLING_DEF to CCJH.RATEPARAM.BILLING_DEF.
2020-07-09 17:18:28 ERROR OGG-01668 Oracle GoldenGate Delivery for Oracle, rep_zwa.prm: PROCESS ABENDING.
2020-07-09 17:18:28 INFO OGG-00975 Oracle GoldenGate Manager for Oracle, mgr.prm: Cannot create process '/openv/ogg/ogg12/replicat'. Child process is no longer alive.
2020-07-09 17:18:28 INFO OGG-00975 Oracle GoldenGate Manager for Oracle, mgr.prm: startER failed.
2020-07-09 17:18:28 WARNING OGG-01742 Oracle GoldenGate Command Interpreter for Oracle: Command sent to MGR MGR returned with an ERROR response.

這次連列名都不報了

 

停止源斷抽取進程后

 

嘗試映射列名應用,修改應用進程配置文件

使用KEYCOLS參數將每個列寫進去排除SHOW_ZERO_FEE_FLAG

map rateparam.SUBJECT_DEF               target rateparam.SUBJECT_DEF, KEYCOLS(EVENT_ID, BILLING_COND, EXPR_TYPE, ITEM_EXPR, ITEMCODE, ITEMTYPE, ITEMADD_TYPE, ITEMADD_EXPR, START_CYCLE, END_CYCLE, TEMPITEM_FLAG, ITEM_UNIT, PAYPLAN_FLAG, G_BILLING_COND, G_ITEMADD_EXPR, G_ITEM_EXPR, RULEID, NEXTRULEID, PROCSCHEMAID, PROCEVENTID, RULENAME, FEE_ID, SPLITTYPE, UNIQUE_ID, ROUNDTYPE);

再嘗試啟動應用進程就可以了

 

在源斷重新添加該表trandata

GGSCI (kdzwa1) 12> dblogin userid ggadmin,password ******
Successfully logged into database.

GGSCI (kdzwa1 as ggadmin@accta1) 13> delete trandata rateparam.BILLING_DEF

Logging of supplemental redo log data disabled for table RATEPARAM.BILLING_DEF.
TRANDATA for scheduling columns has been disabled on table 'RATEPARAM.BILLING_DEF'.
GGSCI (kdzwa1 as ggadmin@accta1) 14> add trandata rateparam.BILLING_DEF

Logging of supplemental redo data enabled for table RATEPARAM.BILLING_DEF.
TRANDATA for scheduling columns has been added on table 'RATEPARAM.BILLING_DEF'.
TRANDATA for instantiation CSN has been added on table 'RATEPARAM.BILLING_DEF'.
GGSCI (kdzwa1 as ggadmin@accta1) 15>

 

追上后停止應用進程

添加列

SQL> alter table rateparam.BILLING_DEF add (SHOW_ZERO_FEE_FLAG NUMBER(1) DEFAULT 0);

Table altered.

再改回來應用進程的配置文件

map rateparam.BILLING_DEF               target rateparam.BILLING_DEF          ;

啟動抽取進程和應用進程觀察

 

以上操作並不適用於所有情況,強制指定列去應用,可能導致目標端后期添加列數據不一致

我操作之前檢查了該表

get_ddl查看建表語句以及表中數據,發現最后一列都是默認值0,表很小,且業務量很少,直接加就是了,若是值不同且很多,就需要logdump分析日志,找到增加列的rba號,同步到該位置再停止,加上列同步后邊的

 

類似問題可以參考ANBOB https://www.anbob.com/archives/5882.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM