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.4243052302 (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 -
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!