一、Cause
ogg的err日志出現以下報錯
2019-09-10 16:36:55 WARNING OGG-01003 Oracle GoldenGate Delivery for Oracle, repwh2.prm: Repositioning to rba 1720271212 in seqno 1521.
2019-09-10 16:36:55 ERROR OGG-01296 Oracle GoldenGate Delivery for Oracle, repwh2.prm: Error mapping from UPCENTER.FUND_BOND_INVEST_PORT_NEW to UPCENTER.FUND_BOND_INVEST_PORT_NEW.
2019-09-10 16:36:55 ERROR OGG-01668 Oracle GoldenGate Delivery for Oracle, repwh2.prm: PROCESS ABENDING.
ogg里面查看進程報錯如下:
GGSCI (ogg2) 2> view param repwh2
#### 省略部分內容 ####
2019-09-10 16:14:43 WARNING OGG-01004 Aborted grouped transaction on 'UPCENTER.FUND_BOND_INVEST_PORT_NEW', Database error 1403 (OCI Error ORA-01403: no data found, SQL <UPDATE "UPCENTER"."FUND_BOND_INVEST_PORT_NEW" SET "ISVALID" = :a0,"UPDATETIME" = :a1 WHERE "FUND_ID
" = :b0 AND "END_DATE" = :b1 AND "IF_CONV_PAR" = :b2 AND "BOND_CODE" = :b3 AND "BOND_NAME" = :b4>).
2019-09-10 16:14:43 WARNING OGG-01003 Repositioning to rba 1720271212 in seqno 1521.
2019-09-10 16:14:43 WARNING OGG-01154 SQL error 1403 mapping UPCENTER.FUND_BOND_INVEST_PORT_NEW to UPCENTER.FUND_BOND_INVEST_PORT_NEW OCI Error ORA-01403: no data found, SQL <UPDATE "UPCENTER"."FUND_BOND_INVEST_PORT_NEW" SET "ISVALID" = :a0,"UPDATETIME" = :a1 WHERE "F
UND_ID" = :b0 AND "END_DATE" = :b1 AND "IF_CONV_PAR" = :b2 AND "BOND_CODE" = :b3 AND "BOND_NAME" = :b4>.
由於表沒有添加主鍵或修改主鍵或者沒有添加補充日志或者導入大量clob字段等等原因,在ogg日志里看到有表同步報錯,此時需要在ogg源端里過濾不同步的表,然后解決掉問題或者手工同步表到目標端,再在目標端里取消過濾
二、解決辦法
以下步驟中停止啟動ogg進程不是必須步驟,請根據實際業務情況來
2.1先停止主和從的ogg進程
stop repwh2
2.2過濾不同步的表
GGSCI (ogg2) 2> edit params repwh2
replicat repwh2
ASSUMETARGETDEFS
dynamicresolution
ALLOWNOOPUPDATES
userid ggs,password mEkxcl9DN
discardfile /u01/gglog/repwh_discard.txt,append,megabytes 500
DDL INCLUDE ALL
DDLERROR DEFAULT IGNORE RETRYOP
TABLEEXCLUDE UPCENTER.HK_SSTEN_DEAL1
TABLEEXCLUDE UPCENTER.STK_INDU_NAME_TEMP #過濾不同步的表,重啟進程
map upcenter.*,target upcenter.*;
GGSCI (ogg2) 2> start repwh2
2.3將主庫的數據導入到從庫
源端導出
expdp 用戶名/密碼 dumpfile=FUND_RETRUN_RANK.dump tables=FUND_RETRUN_RANK logfile=FUND_RETRUN_RANK.log directory=tong PARALLEL=8
目標端導入
impdp 用戶名/密碼 tables=FUND_RETRUN_RANK dumpfile=FUND_RETRUN_RANK.dump directory=tong logfile=FUND_RETRUN_RANK.log TABLE_EXISTS_ACTION=REPLACE
2.4在從庫OGG進程放行過濾的表
GGSCI (ogg2) 2> edit params repwh2
replicat repwh2
ASSUMETARGETDEFS
dynamicresolution
ALLOWNOOPUPDATES
userid ggs,password mEkxcl9DN
discardfile /u01/gglog/repwh_discard.txt,append,megabytes 500
DDL INCLUDE ALL
DDLERROR DEFAULT IGNORE RETRYOP
TABLEEXCLUDE UPCENTER.HK_SSTEN_DEAL1
TABLEEXCLUDE UPCENTER.STK_INDU_NAME_TEMP #將這行去掉
map upcenter.*,target upcenter.*;
2.5啟動主和從的ogg進程
GGSCI (ogg2) 2> start repwh2