Logdump是一个GoldenGate自带的trail文件分析工具,而且能加深对GoldenGate工作原理的理解,非常值得花时间来研究它。
Logdump组件默认在安装目录,是个可执行文件,如图6所示。
图6
直接输入logdump按回车键即可进入logdump界面,如图7所示。
图7
1、认识logdump分析工具及常用命令
logdump的命令不是很多,经常用的就那么几条,进入logdump命令行之后,直接可以输入help即可看到用的每一条命令,如图8和图9所示。
图8
图9
其中常用的命令如下。
Usertoken 用来显示trail文件的一些标记信息。
Ggstoken 显示GoldenGate的一些标记信息。
Headertoken 显示头部的标记信息。
ghdr on 用来打开记录的头部信息。
pos first|last| for| rev 其中pos for|rev 比较重要,用于指定在trail文件中读的方向(向上|向下)。
count detail 会显示当前trail文件总的记录数量,如图10所示。
其他一些命令查看文档很容易就能明白。
图10
2、理解trail文件格式与常见分析思路
理解trail文件的格式对理解GoldenGate的工作原理非常重要,对troubleshooting也非常的有帮助,如图11所示。
图11
其中,一个trail文件最先开始是文件的头部信息,然后是记录的头部信息,接着为记录的详细信息。GoldenGate是以事务为单位处理记录的,所以trail文件记录的时间均为commit的时间,如图12所示。
图12
Trial文件中的处在同一事物中的record,由I/O time和AuditRBA值唯一确定,如图13所示。
图13
TransInd记录当前的record处于当前事务的哪个部分,如图14所示。
图14
GoldenGate的工作原理可以理解为源端抽取进程从redo日志中按事物抽取相应的DML操作信息与数据,然后按时间顺序写到本地的trail文件,然后源端的投递进程则与容灾端MGR进程、Extract进程交互,通过读trail文件信息,把数据通过TCP/IP协议投递到容灾端。接着容灾端的Replicat进程再通过读投递过来的trail文件,转换为SQL语句往数据库里更新数据,这样就完整地实现了数据复制。
了解到这一层后,如果GoldenGate链路出现问题,或者trail文件有损坏,则可以直接通过logdump分析到对应的检查点,重新抽取或者投递或者复制,从而可以修复已经损坏的链路。
3、Logdump使用指引
在GGSCI中使用如下命令查看当前处理的队列文件和RBA号,例如:
示例47:
GGSCI (br-jl-accs-db1) 3> info REPYXA
REPLICAT REPYXA Last Started 2011-01-08 19:48 Status RUNNING
Checkpoint Lag 00:00:00 (updated 136:41:42 ago)
Log Read Checkpoint File ./dirdat/p1000556 First Record RBA 59193235
在GoldenGate安装目录执行logdump命令,打开要查看的队列文件:
示例48:
Logdump 1 >open ./dirdat/p1000556
Current LogTrail is ./dirdat/p1000556
Logdump 2 >ghdr on
Logdump 3 >detail on
Logdump 4 >detail data
Logdump 5 >usertoken on
Logdump 6 >pos 59193235 上面INFO命令看到的RBA号码
Logdump 7 >n
继续输入n显示当前处理的表及相关操作。