Oracle 19C OGG基礎運維-08Error code [942]
Oracle 19C OGG基礎運維-08Error code [942]
問題:
源端:刪除dept_bak表
目標端:在資料同步時找不到dept_bak表,程式ABENDING,同步中斷。
錯誤日誌如下:
Fatal error executing DDL replication: error [Error code [942], ORA-00942: table or view does not exist], no error handler present.
目標端詳細日誌如下:
[oracle@cjcos02 ogg]$ tail -f ggserr.log
2020-04-10T20:48:13.291+0800 INFO OGG-00484 Oracle GoldenGate Delivery for Oracle, rep_01.prm: Executing DDL operation.
2020-04-10T20:48:13.919+0800 ERROR OGG-00519 Oracle GoldenGate Delivery for Oracle, rep_01.prm: Fatal error executing DDL replication: error [Error code [942], ORA-00942: table or view does not exist], no error handler present.
2020-04-10T20:48:20.064+0800 INFO OGG-02333 Oracle GoldenGate Delivery for Oracle, rep_01.prm: Reading /ogg/dirdat/dp000000004, current RBA 10,276, 0 records, m_file_seqno = 4, m_file_rba = 11,586.
2020-04-10T20:48:20.065+0800 ERROR OGG-01668 Oracle GoldenGate Delivery for Oracle, rep_01.prm: PROCESS ABENDING.
檢視程式狀態
GGSCI (cjcos02) 16> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
REPLICAT ABENDED REP_01 00:03:15 00:22:09
重啟程式問題依舊存在
GGSCI (cjcos02) 17> stop rep_01
REPLICAT REP_01 is already stopped.
GGSCI (cjcos02) 17> start rep_01
GGSCI (cjcos02) 16> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
REPLICAT ABENDED REP_01 00:03:15 00:22:09
問題原因:
一開始源端extract程式和目標端replicat程式引數檔案中沒有通過*來匹配所有表,而是指定了固定的表。
例如:
---extract
TABLE cjcpdb.cjc.emp;
TABLE cjcpdb.cjc.dept;
TABLE cjcpdb.cjc.bonus;
TABLE cjcpdb.cjc.salgrade;
TABLE cjcpdb.cjc.dummy;
---replicat
MAP cjcpdb.cjc.emp, TARGET chenpdb.chen.emp;
MAP cjcpdb.cjc.dept, TARGET chenpdb.chen.dept;
MAP cjcpdb.cjc.bonus, TARGET chenpdb.chen.bonus;
MAP cjcpdb.cjc.salgrade, TARGET chenpdb.chen.salgrade;
MAP cjcpdb.cjc.dummy, TARGET chenpdb.chen.dummy;
再此期間在源端建立了一張測試表dept_bak;
源端:
create table dept_bak as select * from dept;
由於之前的配置,這個操作不會同步到目標端。
後來,將源端extract程式和目標端replicat程式引數檔案修改為通過*來匹配使用者下所有表。
例如:
---extract
TABLE cjcpdb.cjc.*;
---replicat
MAP cjcpdb.cjc.*, TARGET chenpdb.chen.*;
重啟extract和relicat程式後,發現源端比目標端多了一張測試表dept_bak,
在源端手動刪除這張表,由於目標端沒有這張表,drop命令在同步到目標端時發生錯誤提示找不到表,最終導致目標端恢復程式replicat掛起。
解決方案:目標端修改引數,跳過942錯誤
GGSCI (cjcos02) 19> edit param rep_01
GGSCI (cjcos02) 20> view param rep_01
replicat rep_01
setenv (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
userid ogg@chenpdb,password oracle
assumetargetdefs
reperror default,discard
discardfile ./dirrpt/replzl.dsc,append,megabytes 50
DDL INCLUDE MAPPED
DDLOPTIONS REPORT
DDLERROR 942 IGNORE
MAP cjcpdb.cjc.*, TARGET chenpdb.chen.*;
---MAP cjcpdb.cjc.emp, TARGET chenpdb.chen.emp;
---MAP cjcpdb.cjc.dept, TARGET chenpdb.chen.dept;
---MAP cjcpdb.cjc.bonus, TARGET chenpdb.chen.bonus;
---MAP cjcpdb.cjc.salgrade, TARGET chenpdb.chen.salgrade;
---MAP cjcpdb.cjc.dummy, TARGET chenpdb.chen.dummy;
重啟replicat程式後恢復正常
GGSCI (cjcos02) 23> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
REPLICAT RUNNING REP_01 00:00:00 00:00:02
歡迎關注我的微信公眾號"IT小Chen",共同學習,共同成長!!!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29785807/viewspace-2685571/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 19C OGG基礎運維-09OGG-15121錯誤Oracle運維
- Oracle 19C OGG基礎運維-03DML操作同步Oracle運維3D
- Oracle 19C OGG基礎運維-05DDL操作同步Oracle運維
- Oracle 19C OGG基礎運維-01環境準備Oracle運維
- Oracle 19C OGG基礎運維-06增加複製表Oracle運維
- Oracle 19C OGG基礎運維-02資料初始化Oracle運維
- Oracle 19C OGG基礎運維-07減少複製表Oracle運維
- Oracle 19C OGG基礎運維-04DML同步常見問題Oracle運維
- Oracle 19C Data Guard基礎運維-02 Switchovers(物理)Oracle運維
- Oracle 19C Data Guard基礎運維-03 Failovers(物理)Oracle運維AI
- Oracle 19C Data Guard基礎運維-06 PROTECTION MODEOracle運維
- Oracle 19C Data Guard基礎運維-08 DML重定向Oracle運維
- Oracle 19C Data Guard基礎運維-04 Failovers疑問?Oracle運維AI
- Oracle 19C Data Guard基礎運維-05Failovers (GAP)Oracle運維AI
- Oracle 19C Data Guard基礎運維-01安裝物理standbyOracle運維
- ORACLE OGG運維及日常監控Oracle運維
- Oracle 19C Data Guard基礎運維-07 failover後閃回恢復dg架構Oracle運維AI架構
- Oracle OGG日常維護Oracle
- ORACLE基礎運維命令操作手冊Oracle運維
- ogg for oracle 19c 非cdb安裝配置Oracle
- Oracle分割槽表基礎運維-08Coalescing PartitionsOracle運維
- Oracle分割槽表基礎運維-09刪除分割槽Oracle運維
- Oracle分割槽表基礎運維-05組合分割槽Oracle運維
- Oracle分割槽表基礎運維-02範圍分割槽Oracle運維
- Oracle分割槽表基礎運維-03HASH分割槽Oracle運維
- linux運維基礎2Linux運維
- MySQL基礎運維——percona-toolkit運維工具MySql運維
- Oracle分割槽表基礎運維-04列表分割槽Oracle運維
- 智慧運維基礎-運維知識庫之ETL運維
- 《前端運維》一、Linux基礎--基礎命令(1)前端運維Linux
- Glance基礎服務運維運維
- Oracle分割槽表基礎運維-06分割槽表索引Oracle運維索引
- Oracle分割槽表基礎運維-01分割槽表分類Oracle運維
- mongodb基礎運維能力定義MongoDB運維
- Jumpserver基礎運維-01介紹Server運維
- Redis日常運維-基礎認識Redis運維
- 01-linu核心基礎-02運維基礎重要概念運維
- Oracle分割槽表基礎運維-07增加分割槽(2 HASH分割槽)Oracle運維