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住嗎?
- 從程序員的盡頭是業務説起