模擬oracle rac節點異常時如何保持ogg正常執行
環境簡介
|
系統 |
Oracle 版本 |
OGG 版本 |
|
源端 |
Linux 6.9 |
oracle11204 |
112101 |
|
目標端 |
Linux 6.9 |
oracle11204 |
122022 |
|
準備測試ogg 環境
源端ogg
GGSCI (rac11gn1) 2> info *
EXTRACT EXT28 Last Started 2020-11-06 11:20 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:09 ago)
Log Read Checkpoint Oracle Redo Logs
2020-11-06 11:38:43 Thread 1, Seqno 10, RBA 180652544
SCN 2979.2159160499 (12796866735283)
Log Read Checkpoint Oracle Redo Logs
2020-11-06 11:38:43 Thread 2, Seqno 17, RBA 573440
SCN 2979.2159160499 (12796866735283)
----- 挖掘程式的具體引數-----
GGSCI (rac11gn1) 3> view param ext28
extract ext28
setenv (NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK")
--setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
userid odc,password odc
exttrail ./dirdat/z3
tranlogoptions dblogreader
FETCHOPTIONS FETCHPKUPDATECOLS
ddl include objname test.* exclude objtype 'TRIGGER'
ddloptions addtrandata
table test.test1;
目標端ogg
GGSCI (oradb) 4> info rep28
REPLICAT REP28 Last Started 2020-11-05 13:38 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:07 ago)
Process ID 5044
Log Read Checkpoint File ./dirdat/z3000010
2020-11-06 13:48:24.927157 RBA 1567
----- 應用程式的具體引數-----
GGSCI (oradb) 5> view param rep28
replicat rep28
setenv (NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK")
userid odc, password odc
ASSUMETARGETDEFS
ALLOWNOOPUPDATES
DBOPTIONS DEFERREFCONST
HANDLETPKUPDATE
ddl include mapped
DISCARDFILE /ogg/dirrpt/z3.dsc, APPEND megabytes 20
DISCARDROLLOVER on sunday
map test.* target test.*;
測試RAC 中一個節點掛機
將二節點關機
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
觀察ogg 變化
觀察挖掘程式資訊,可以看到二節點的RBA 變為了0.
GGSCI (rac11gn1) 10> info *
EXTRACT DMP28 Last Started 2020-11-06 13:27 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:19 ago)
Log Read Checkpoint File ./dirdat/z3000013
2020-11-06 11:20:33.296830 RBA 1075
EXTRACT EXT28 Last Started 2020-11-06 13:27 Status RUNNING
Checkpoint Lag 00:00:02 (updated 00:00:03 ago)
Log Read Checkpoint Oracle Redo Logs
2020-11-06 13:27:37 Thread 1, Seqno 10, RBA 187623440
SCN 2979.2159173792 (12796866748576)
Log Read Checkpoint Oracle Redo Logs
2020-11-06 13:26:37 Thread 2, Seqno 18, RBA 0
SCN 2979.2159173716 (12796866748500)
觀察日誌資訊,出現大量關於二節點資訊
2020-11-06 13:30:01 INFO OGG-01513 Oracle GoldenGate Capture for Oracle, ext28.prm: Positioning to (Thread 2) Sequence 18, RBA 0, SCN 2979.2159173716.
2020-11-06 13:30:02 INFO OGG-01513 Oracle GoldenGate Capture for Oracle, ext28.prm: Positioning to (Thread 2) Sequence 18, RBA 0, SCN 2979.2159173716.
2020-11-06 13:30:04 INFO OGG-01513 Oracle GoldenGate Capture for Oracle, ext28.prm: Positioning to (Thread 2) Sequence 18, RBA 0, SCN 2979.2159173716.
2020-11-06 13:30:05 INFO OGG-01513 Oracle GoldenGate Capture for Oracle, ext28.prm: Positioning to (Thread 2) Sequence 18, RBA 0, SCN 2979.2159173716.
2020-11-06 13:30:06 INFO OGG-01513 Oracle GoldenGate Capture for Oracle, ext28.prm: Positioning to (Thread 2) Sequence 18, RBA 0, SCN 2979.2159173716.
2020-11-06 13:30:07 INFO OGG-01513 Oracle GoldenGate Capture for Oracle, ext28.prm: Positioning to (Thread 2) Sequence 18, RBA 0, SCN 2979.2159173716.
2020-11-06 13:30:08 INFO OGG-01513 Oracle GoldenGate Capture for Oracle, ext28.prm: Positioning to (Thread 2) Sequence 18, RBA 0, SCN 2979.2159173716.
2020-11-06 13:30:09 INFO OGG-01513 Oracle GoldenGate Capture for Oracle, ext28.prm: Positioning to (Thread 2) Sequence 18, RBA 0, SCN 2979.2159173716.
2020-11-06 13:30:10 INFO OGG-01513 Oracle GoldenGate Capture for Oracle, ext28.prm: Positioning to (Thread 2) Sequence 18, RBA 0, SCN 2979.2159173716.
刪除二節點
此時挖掘程式無法正常抽取資料,有兩種方法恢復ogg正常執行,一種是重建程式,另外一種則是先排除第二個節點,後續還可以加回去。
我們採用第二種方案。
1. 確認資料庫節點順序
SQL> select distinct thread# from v$log;
THREAD#
----------
1
2
--- 注意日誌節點順序與ogg 節點順序是否一致
2.禁用 二節點redo
SQL> alter database disable thread 2;
3. 加入引數排除二節點
如果上述日誌節點不是順序排序,排除時根據相應的節點排除
GGSCI (rac11gn1) 11> view param ext28
extract ext28
setenv (NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK")
userid odc,password odc
exttrail ./dirdat/z3
tranlogoptions dblogreader
FETCHOPTIONS FETCHPKUPDATECOLS
THREADOPTIONS PROCESSTHREADS EXCEPT 2
或者 THREADOPTIONS PROCESSTHREADS SELECT 1
ddl include objname xjm.* exclude objtype 'TRIGGER'
ddloptions addtrandata
table test.test1;
4. 觀察日誌
2020-11-06 14:51:42 ERROR OGG-01937 Oracle GoldenGate Capture for Oracle, ext28.prm: Extract is not configured to capture changes from thread 2,158,926,566. To avoid data loss, the Extract must be dropped and recreated with the THREADS option to specify the correct number of RAC instances. See the Oracle GoldenGate administration documentation for the procedure to follow.
5. 加入引數修復錯誤
根據mos 參考檔案:
該 bug 是在 ogg11.2.0.5 以下版本中會出現,在 11.2.0.5 中已被修復好
GGSCI (rac11gn1) 28> view param ext28
extract ext28
setenv (NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK")
--setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
userid odc,password odc
exttrail ./dirdat/z3
tranlogoptions dblogreader
FETCHOPTIONS FETCHPKUPDATECOLS
THREADOPTIONS PROCESSTHREADS EXCEPT 2
TRANLOGOPTIONS _IGNORETHREADEVENT
ddl include objname test.* exclude objtype 'TRIGGER'
ddloptions addtrandata
table test.test1;
觀察後臺日誌,沒有明顯錯誤出現。
新增二節點
1.
--- 將挖掘的引數檔案中將二節點新增回去
GGSCI (rac11gn1) 11> view param ext28
extract ext28
setenv (NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK")
userid odc,password odc
exttrail ./dirdat/z3
tranlogoptions dblogreader
FETCHOPTIONS FETCHPKUPDATECOLS
--THREADOPTIONS PROCESSTHREADS EXCEPT 2
TRANLOGOPTIONS _IGNORETHREADEVENT
ddl include objname test.* exclude objtype 'TRIGGER'
ddloptions addtrandata
table test.test1;
--啟用 二節點redo
SQL> alter database enable thread 2;
2. 將二節點拉起來
SQL>startup
觀察程式是否都正常執行。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29956245/viewspace-2932732/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle RAC某一節點異常,你該怎麼辦?Oracle
- Oracle_RAC_Grid_root.sh執行異常Oracle
- oracle 11.2.0.4 rac節點異常當機之ORA-07445Oracle
- 執行時異常和檢查性異常區別
- 【RAC】處理因ASM例項異常導致RAC第一節點例項異常終止故障ASM
- RAC中job會在哪個節點執行
- 處理rac資料庫一個節點監聽異常資料庫
- Oracle RAC新增節點Oracle
- Oracle RAC 新增節點Oracle
- ORACLE 11.2.0.4 rac for linux 鏈路宕導致的單節點異常當機OracleLinux
- 執行時異常與一般異常有何異同?
- 用Go語言異常機制模擬TryCatch異常捕捉Go
- 執行hadoop命令時,出現異常Hadoop
- Oracle RAC節點時間差過大解決方法Oracle
- oracle rac中讓sql語句在指定的節點執行的方法OracleSQL
- 教育直播APP開發過程中,如何保持系統正常執行?APP
- Oracle Rac 刪除節點Oracle
- RAC系統當中,job在哪個節點執行?
- oracle時間格式記錄異常導致OGG複製程式報錯Oracle
- 【RAC】部署安裝RAC時確保主節點的時間小於其他節點時間
- 正常執行時間監控
- 21. 羅列常見的幾個執行時異常
- 關於Oracle 11G RAC雙節點之間存在防火牆導致只能一個節點執行Oracle防火牆
- [網摘] Oracle RAC新增節點Oracle
- 檢視oracle rac的節點Oracle
- 11.2 RAC時間同步異常(二)
- 11.2 RAC時間同步異常(一)
- win10系統安裝模擬器後無法正常啟動執行如何解決Win10
- 記一次oracle 19c RAC叢集重啟單節點DB啟動異常(二)Oracle
- RAC中跨節點並行並行
- ORACLE RAC spfile異常處理辦法Oracle
- 如何執行一個 Conflux 節點UX
- 執行緒池OOM異常執行緒OOM
- oracle11g RAC新增節點Oracle
- Oracle10g RAC 加節點Oracle
- shell模擬“多執行緒”執行緒
- 【RAC】Oracle10g RAC 節點重配的方式Oracle
- 如何在 Windows 中檢查計算機正常執行時間Windows計算機