GoldenGate案例一則:抽取程序無法捕獲資料
GoldenGate故障案例一則:
抽取程序無法無法捕獲資料
⒈ 背景
某軟體開發商自己維護的一套Goldengate環境,一共有5個抽取程序,所有的抽取程序狀態都為running,但其中的一個抽取程序無法捕獲資料變化,該抽取程序所對應的trail檔案大小沒有任何增長。
開發商無力解決該故障,最終希望我們幫忙看看這個故障。
2. 分析過程
1、首先檢視GoldenGate的ggserr.log日誌,在日誌檔案中,沒有看到任何的異常日誌。
2、對比正常程序和異常程序的配置檔案,沒有發現任何配置層面的問題。
3、檢視異常檢查抽取程序的檢查點資訊,檢查點資訊如下所示。
GGSCI (ceshi2) 25> info E_CQ,showch
EXTRACT E_CQ Last Started 2022-04-14 16:00 Status RUNNING
Checkpoint Lag 01:26:24 (updated 00:00:16 ago)
Log Read Checkpoint Oracle Redo Logs
2022-04-14 14:33:43 Seqno 416, RBA 127790608
SCN 4038.4242876625 (17347320817873)
Current Checkpoint Detail:
Read Checkpoint #1
Oracle Redo Log
Startup Checkpoint (starting position in the data source):
Thread #: 1
Sequence #: 416
RBA: 127790096
Timestamp: 2022-04-14 14:33:42.000000
SCN: 4038.4242876623 (17347320817871)
Redo File: +DG_DATA/shengchan/onlinelog/group_1108.488.1100857375
Recovery Checkpoint (position of oldest unprocessed transaction in the data source):
Thread #: 1
Sequence #: 416
RBA: 127790096
Timestamp: 2022-04-14 14:33:42.000000
SCN: 4038.4242876623 (17347320817871)
Redo File: +DG_DATA/shengchan/onlinelog/group_1108.488.1100857375
Current Checkpoint (position of last record read in the data source):
Thread #: 1
Sequence #: 416
RBA: 127790608
Timestamp: 2022-04-14 14:33:43.000000
SCN: 4038.4242876625 (17347320817873)
Redo File: +DG_DATA/shengchan/onlinelog/group_1108.488.1100857375
Write Checkpoint #1
GGS Log Trail
Current Checkpoint ( current write position ):
Sequence #: 1
RBA: 0
Timestamp: 2022-04-14 14:33:05.962312
Extract Trail: ./dirdat/xa
Trail Type: EXTTRAIL
(略……)
從檢查點資訊可以看出,Recovery Checkpoint和Current Checkpoint已經基本上一致,那說明GoldenGate恢復已經基本上完成。同時也可以看到當前trail檔案寫的情況,寫EXTTRAIL並沒有寫入,Sequence #: 1,RBA: 0,這說明這個抽取程序應該是剛剛建立。
4、檢視異常程序的當前狀態,資訊如下。
可以看出,該程序的當前狀態為:recovery[2] :at EOF,這說明這個抽取程序還沒有完成恢復工作,當然也就不會進行資料抽取了。
檢視GoldenGate官方文件,對程序的恢復狀態進行了說明。
在異常終止事件後的Extract恢復期間出現符號。當Extract在恢復過程中不斷更改其日誌讀取位置時,您可以跟蹤其進展。
◆In recovery[1](在恢復[1])——提取正在恢復到其事務日誌中的檢查點。
◆In recovery[2](在恢復[2])——提取是恢復從其檢查點到trail檔案結束。
◆Recovery complete(恢復完成)——恢復完成,將恢復正常處理。
該程序一直卡在這個狀態,那基本上可以判斷與該程序所對應的trail檔案有關,所以馬上去看下dirdat檔案下以xa開頭的trail檔案,發現當前以xa開頭的檔案為xa234255,這就很奇怪了,既然這是一套新環境,dirdat目錄下怎麼會有這些trail檔案?
5、找到軟體開發商,希望瞭解更多的細節。經過溝通才瞭解到新環境的GoldenGate是從老環境中拷貝過來的,他們在新環境中只是重建了抽取程序,但dirdat目錄下的檔案沒有清理掉。
6、至此,應該已經找到問題的所在了。新環境中存在殘餘的資訊,導致抽取程序恢復工作無法完成。把殘餘的trail檔案刪除,重啟抽取後進程,應該就可以解決故障。
3. 解決方案
在新環境中,刪除GoldenGate軟體中dirdat目錄下存在的殘餘資訊,並重啟抽取程序,該抽取程序立刻工作,可以正常抽取資料。
恢復後檢視程序資訊:
程序當前狀態:Recovery complete:at EOF,恢復完成,該程序開始正常處理資料。
GGSCI (ceshi2) 36> info E_CQ,showch
EXTRACT E_CQ Last Started 2022-04-14 16:20 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:05 ago)
Log Read Checkpoint Oracle Redo Logs
2022-04-14 17:43:13 Seqno 416, RBA 380195328
SCN 4038.424305 2302 (17347320993550)
Current Checkpoint Detail:
Read Checkpoint #1
Oracle Redo Log
Startup Checkpoint (starting position in the data source):
Thread #: 1
Sequence #: 416
RBA: 127790096
Timestamp: 2022-04-14 14:33:42.000000
SCN: 4038.4242876623 (17347320817871)
Redo File: +DG_DATA/shengchan/onlinelog/group_1108.488.1100857375
Recovery Checkpoint (position of oldest unprocessed transaction in the data source):
Thread #: 1
Sequence #: 416
RBA: 380194832
Timestamp: 2022-04-14 17:43:13.000000
SCN: 4038.4243052302 (17347320993550)
Redo File: +DG_DATA/shengchan/onlinelog/group_1108.488.1100857375
Current Checkpoint (position of last record read in the data source):
Thread #: 1
Sequence #: 416
RBA: 380195328
Timestamp: 2022-04-14 17:43:13.000000
SCN: 4038.4243052302 (17347320993550)
Redo File: +DG_DATA/shengchan/onlinelog/group_1108.488.1100857375
Write Checkpoint #1
GGS Log Trail
Current Checkpoint ( current write position ):
Sequence #: 1
RBA: 12637521
Timestamp: 2022-04-14 17:43:15.541947
Extract Trail: ./dirdat/xa
Trail Type: EXTTRAIL
(略。。。。。。)
可以看到當前寫的位置,寫入trail檔案,RBA: 12637521,多做幾個可以看到rba是在變化,trail檔案也在增加。
- END -
- 技術分享 | orchestrator--運維--配置叢集自動切換&測試
- AIOPS的莫拉維克悖論
- 詳談 MySQL 8.0 原子 DDL 原理
- 為什麼不建議用 from xxx import *
- 最近解決的兩個拖延數年的問題
- Oracle資料庫解決方案集錦
- 新一代雲原生資料庫暢想
- MySQL8.0賬戶system_user許可權,你瞭解嗎?
- Data Fabric,下一個風口?
- 帶著孩子做開學準備清單
- 十多年前的入職第一天
- 技術分享 | MySQL 編寫指令碼時避免煩人的警告
- GoldenGate案例一則:抽取程序無法捕獲資料
- 技術分享 | MySQL 設定管理員密碼無法生效一例
- PG資料庫的鎖咋弄得這麼複雜呢
- 金融業分散式資料庫選型及HTAP場景實踐
- 我們的企業為什麼寫不好文件
- 新資料庫時代,DBA 發展之路該如何選擇
- MySQL:修改系統時鐘會導致資料庫hang住嗎?
- 從程式設計師的盡頭是業務說起