OGG:查看日誌文件和trail中的事務

1、背景

goldengate的基本原理是:按最簡單的單項複製結構爲例

  1. 由3個模塊構成:extract抽取、pump投遞、replicat複製;2個文件trail:主機本地隊列、備機遠程隊列。
  2. 在主機側:extract抽取redo中的事務,放到本地trail中;然後pump把本地trail投遞到遠端備機的遠程trail。
  3. 在備機側:replicat讀取遠程trail,構造sql,在備機執行。完成複製。
    進程的失敗無非是事務的失敗。 因此學會查看流程中的事務信息,對維護極有幫助。

2、從日誌查看失敗或當前的事務位置

2.1 從錯誤日誌ggserr.log查看

2020-06-03 16:56:47  WARNING OGG-01396  Oracle GoldenGate Delivery for Oracle, rept01.prm:  
A complete after image is not available in BDE.TXT_KONFIG at rba 30971697 in file /home/oracle/ggate/dirdat/r1000198, while inserting a row into BDE.TXT_KONFIG due to missing target row for a key update operation. 
NOCOMPRESSUPDATES or FETCHOPTIONS FETCHPKUPDATECOLS may be specified in the EXTRACT parameter file to include a complete image for key update operations.

注意,事務的位置是:trail文件r1000198,rba事務號30971697。

2.2 從discard文件查看

Current time: 2020-06-04 09:27:21

		OCI Error ORA-02291: integrity constraint (ML.CS_LOG_FOR_CS_CHARGE_ID) violated - parent key not found (status = 2291). INSERT INTO "ML"."CS_LOG" ("KAP_ID","CHARGE_NR","AS_NR","KOMP_INDEX","CS_CHARGE_ID","CS_KAP_STATE_ID","POSITION","ANLAUF","AUSLAUF","CREATED","USER_ID","STAMP","KOMPONENTE_ID","SNR_MAT_ID","KOMP_ANZ","BOOK_QTY","BOOK_QTY_TOTAL","BOOK_STAMP","BOOK_TRANSFERED","PARENT_ID","FLOOR_LIFETIME_REMAIN","SNR_MAT_MSL_SEQ_NO","CS_LOG_ID","DRYPACK_EXPIREDATE","PRE_SETUP_ITEM_SECTION_ID","ORDER_CLUSTER_ID") VALUES (:a0,:a1,:a2,:a3,:a4,:a5,:a6,:a7,:a8,:a9,:a10,:a11,:a12,:a13,:a14,:a15,:a16,:a17,:a18,:a19,:a20,:a21,:a22,:a23,:a24,:a25)
		Operation failed at seqno 265 rba 25881602
		Discarding record on action DISCARD on error 2291
		Problem replicating ML.CS_LOG to ML.CS_LOG
		Mapping problem with insert record (target format)...
		*
		KAP_ID = 301
		CHARGE_NR = 4050
		AS_NR = 10
		KOMP_INDEX = 0
		CS_CHARGE_ID = 645234
		CS_KAP_STATE_ID = 58598984
		POSITION = L304NXT1_6_10
		ANLAUF = 2020-06-04 09:33:02.696000000
		AUSLAUF = 3000-12-31 23:59:59.999000000
		CREATED = 2020-06-04 09:33:07.356000000
		USER_ID = -5
		STAMP = 2020-06-04 09:33:07.356000000
		KOMPONENTE_ID = 110151
		SNR_MAT_ID = 1761945
		KOMP_ANZ = 4.0000
		BOOK_QTY = 0
		BOOK_QTY_TOTAL = 0
		BOOK_STAMP = NULL
		BOOK_TRANSFERED = 1970-01-01 00:00:00.000000000
		PARENT_ID = 0
		FLOOR_LIFETIME_REMAIN = NULL
		SNR_MAT_MSL_SEQ_NO = NULL
		CS_LOG_ID = 57287147
		DRYPACK_EXPIREDATE = NULL
		PRE_SETUP_ITEM_SECTION_ID = NULL
		ORDER_CLUSTER_ID = NULL
		*

注意,事務位置隊列trail位置:seqno 265 rba 25881602

3、用logdump工具查看隊列裏的事務

logdump是OGG自帶的工具,在OGG根目錄下。

3.1 打開trail文件

trail文件名對應seqno,如seqno 265–>dirdat/s1000265

Logdump 60 >open dirdat/r1000198
		Current LogTrail is /home/oracle/ggate/dirdat/r1000198

3.2 移動到事務位置

事務位置就是rba
Logdump 61 >pos 30971697
Reading forward from RBA 30971697
顯示當前事務信息

Logdump 62 >n

2020/06/03 16:56:44.147.117 GGSPKUpdate          Len   128 RBA 30971697
Name: BDE.TXT_KONFIG
After  Image:                                             Partition 4   G  m
 002b 0000 000a 0000 0000 0000 0000 00ad 0001 000a | .+..................
 0000 0000 0000 0000 5209 0003 000b 0000 0007 3137 | ........R.........17
 3633 3534 3500 0000 0a00 0000 0000 0000 0000 ad00 | 63545...............
 0100 0a00 0000 0000 0000 0052 0900 0300 0500 0000 | ...........R........
 0130 0006 001f 0000 3230 3230 2d30 362d 3033 3a31 | .0......2020-06-03:1
 373a 3032 3a32 382e 3235 3430 3030 3030 3000 0700 | 7:02:28.254000000...
 0700 0000 0331 3733                               | .....173

4、使用場景

  1. 跳過指定的事務:有時進程的延遲lag很大,看是哪些事務導致的,可以用logdump查看trail的事務內容。
  2. 查看進程hang住的事務:有時進程hang住,info all查看正常的running狀態,錯誤日誌、丟棄日誌都沒有輸出,但就是不同步。可以查看到底是什麼事務導致。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章