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状态,错误日志、丢弃日志都没有输出,但就是不同步。可以查看到底是什么事务导致。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章