zoukankan      html  css  js  c++  java
  • OGG_GoldenGate数据传递文件Trial(案例)

    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

  • 相关阅读:
    C语言 sprintf 函数 C语言零基础入门教程
    C语言 printf 函数 C语言零基础入门教程
    C语言 文件读写 fgets 函数 C语言零基础入门教程
    C语言 文件读写 fputs 函数 C语言零基础入门教程
    C语言 fprintf 函数 C语言零基础入门教程
    C语言 文件读写 fgetc 函数 C语言零基础入门教程
    C语言 文件读写 fputc 函数 C语言零基础入门教程
    C语言 strlen 函数 C语言零基础入门教程
    Brad Abrams关于Naming Conventions的演讲中涉及到的生词集解
    适配器模式
  • 原文地址:https://www.cnblogs.com/eastsea/p/4264037.html
Copyright © 2011-2022 走看看