2014-03-05 Created By BaoXinjian
一、摘要
Trail文件是GoldenGate为了更有效的把数据库事务信息从源端传递到目标端
1. Trail文件处理过程
Step1. Extract进程抽取万数据以后,GoldenGate会把抽取的事务信息转换为GoldenGate特有的专有格式文件Trail
Step2. 然后Pump进程将Trail文件传输到目标端
所以目标端和源端都会存在Trail文件
2. Trail文件的分类
源端存放Trail文件,为本地Trail文件
目标端存放Trail文件,为远程Trail文件
3. Trail文件存在的意义
防止单点故障,将事物信息持久化,并使用checkpoint机制记录其读写位置
如果发生故障,数据可以根据Checkpoint记录的位置重新传输
Tail文件并不是必须的,Extract进程可以通过TCP/IP协议,直接将日志信息传输至目标端,但是不推荐,一旦发生系统故障或网络故障,可能会造成数据的丢失
4. Logdump查看工具
Logdump可以查看GoldenGate的trail文件
二、Tail文件查看
如何查看Process使用的Tail文件
GGSCI (odellprod.com) 6> info REP1
REPLICAT REP1 Last Started 2015-01-28 05:31 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:01 ago)
Log Read Checkpoint File /opt/oracle/ggate/dirdat/lt000001
2015-01-28 05:31:45.209626 RBA 1105
三、Logdump分析
1. Logdump作用
Logdump是一个GoldenGate自带的trail文件分析工具,而且能加深对GoldenGate工作原理的理解,非常值得花时间来研究它
2. Logdump常用命令
(1). Usertoken 用来显示trail文件的一些标记信息。
(2). Ggstoken 显示GoldenGate的一些标记信息。
(3). Headertoken 显示头部的标记信息。
(4). ghdr on 用来打开记录的头部信息。
(5). pos first|last| for| rev 其中pos for|rev 比较重要,用于指定在trail文件中读的方向(向上|向下)。
(6). count detail 会显示当前trail文件总的记录数量。
3. 通过Logdump工具分析Tail文件的结构
(1). 一个trail文件结构
a. 文件头部信息
b. 记录的头部信息
c. 记录的详细信息
(2). 其他要点
a. GoldenGate是以事物为单位处理记录的,所以trail文件记录的事件为commit的时间
b. Trail文件中的处在同一事物的record, 由I/O time和Audit RBA值唯一确定
c. TransInd记录当前的record处在当前事物的哪个部分
四、Logdump的分析案例
案例:查看当前Process正在处理的进程
Step1. 查看logdump程序位置,并调用
[ggate@odellprod ggate]$ pwd
/opt/oracle/ggate
[ggate@odellprod ggate]$ ls logdump
logdump
[ggate@odellprod ggate]$ ./logdump
Step2. 查看process正在处理的trail文件和rba
GGSCI (odellprod.com) 6> info REP1
REPLICAT REP1 Last Started 2015-01-28 05:31 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:01 ago)
Log Read Checkpoint File /opt/oracle/ggate/dirdat/lt000001
2015-01-28 05:31:45.209626 RBA 88381352
Step3. 打开该trail文件,并分析该文件
Logdump 342 >open /opt/oracle/ggate/dirdat/lt000001
Current LogTrail is /opt/oracle/ggate/dirdat/lt000001
Logdump 343 >ghdr on
Logdump 344 >detail on
Logdump 345 >detail data
Logdump 346 >usertoken on
Logdump 347 >pos 1105
Reading forward from RBA 88381352
Logdump 348 >n
___________________________________________________________________
Hdr-Ind : E (x45) Partition : . (x04)
UndoFlag : . (x00) BeforeAfter: A (x41)
RecLength : 944 (x03b0) IO Time : 2015/01/29 05:47:21.045.532
IOType : 5 (x05) OrigNode : 255 (xff)
TransInd : . (x00) FormatType : R (x52)
SyskeyLen : 0 (x00) Incomplete : . (x00)
AuditRBA : 194407 AuditPos : 89422352
Continued : N (x00) RecCount : 1 (x01)
2015/01/29 05:47:21.045.532 Insert Len 944 RBA 88381352 -->操作类型Insert
Name: GAVINPROD -->来源数据库
After Image: Partition 4 G b
0000 000d 0000 0009 3335 3636 3730 3532 3900 0100 | ........356670529...
04ff ff00 0000 0200 04ff ff00 0000 0300 04ff ff00 | ....................
0000 0400 04ff ff00 0000 0500 04ff ff00 0000 0600 | ....................
04ff ff00 0000 0700 04ff ff00 0000 0800 0700 0000 | ....................
0337 3535 0009 0004 ffff 0000 000a 0004 ffff 0000 | .755................
000b 0004 ffff 0000 000c 0004 ffff 0000 000d 0004 | ....................
ffff 0000 000e 0004 ffff 0000 000f 0004 ffff 0000 | ....................
Column 0 (x0000), Len 13 (x000d)
0000 0009 3335 3636 3730 3532 39 | ....356670529 -->数据值
Column 1 (x0001), Len 4 (x0004)
ffff 0000 | ....
Column 2 (x0002), Len 4 (x0004)
ffff 0000 | ....
Column 3 (x0003), Len 4 (x0004)
ffff 0000 | ....
Column 4 (x0004), Len 4 (x0004)
ffff 0000 | ....
Column 5 (x0005), Len 4 (x0004)
ffff 0000 | ....
Column 6 (x0006), Len 4 (x0004)
ffff 0000 | ....
Column 7 (x0007), Len 4 (x0004)
ffff 0000 | ....
Column 8 (x0008), Len 7 (x0007)
Thanks and Regards