Oracle GoldenGate Parte - II

October 5, 2018

Esta é a segunda parte de uma série de 3 artigos em que estou apresentando os conceitos básicos sobre o Oracle GoldenGate, detalhes da sua arquitetura e algumas dicas. 

 

Parte I: Introdução e arquitetura

Parte II: Comandos para monitoração e troubleshooting com logdump.  >>>> este artigo

Parte III: Certificação e Dicas.

 

 

PARTE II: Comandos para monitoração e troubleshooting com logdump.

 

 

Comandos para monitoração

 

Nesta parte do artigo serão apresentados alguns comandos que podem ser utilizados para monitoração do Oracle GoldenGate, e analisar o que está acontecendo no ambiente.

 

O primeiro comando apresentado é o "info all", com ele podemos verificar de forma resumida e rápida quais processos existem, o status deles, e informações de lag e checkpoint, como apresentado abaixo:

 

====================================================================================

GGSCI (ol75-ogg12c) 1> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING                                           
EXTRACT     RUNNING     EXTDB12C    00:00:00      00:00:05    
EXTRACT     RUNNING     PMPDB12C    00:00:00      00:00:06    

====================================================================================

 

 

Com o comando info e o nome do processo, conseguimos visualizar mais informações sobre o processo em questão:

 

====================================================================================
GGSCI (ol75-ogg12c) 2> info EXTDB12C

EXTRACT    EXTDB12C  Last Started 2018-10-04 02:16   Status RUNNING
Checkpoint Lag       00:00:08 (updated 00:00:03 ago)
Process ID           15062
Log Read Checkpoint  Oracle Integrated Redo Logs
                     2018-10-04 03:10:12
                     SCN 0.2234136 (2234136)

====================================================================================

 

  •  Horário do último start do processo e o status atual:

EXTRACT    EXTDB12C  Last Started 2018-10-04 02:16   Status RUNNING

 

  •  Se existe algum lag no processo:

 Checkpoint Lag       00:00:11 (updated 00:00:03 ago)
   

  •  Qual o número do PID (Process Identifier) do sistema operacional:

 Process ID           15062
   

  •  Podemos pesquisar o número desse processo para confirmar:

[oracle@ol75-ogg12c:/u01/app/oracle/product/ogg/dirdat]$ ps -ef | grep 15062
   oracle   15062  2792  0 02:16 ?        00:00:07 /u01/app/oracle/product/ogg/extract PARAMFILE /u01/app/oracle/product/ogg/dirprm/extdb12c.prm REPORTFILE /u01/app/oracle/product/ogg/dirrpt/EXTDB12C.rpt PROCESSID EXTDB12C

 

  • Qual o método de captura do Extract? Neste caso podemos observar que está usando o Modo Integrado. A posição SCN e horário de leitura atual do transaction log do banco:
     

       Log Read Checkpoint Oracle Integrated Redo Log
                           2018-10-04 03:01:2
                            SCN 0.2232731 (2232731)


E se eu quiser saber qual é o trafile  atual que o processo extract está escrevendo as transações capturadas?

 

Utilize o comando abaixo:
 

====================================================================================

GGSCI (ol75-ogg12c) 3> info EXTDB12C detail

EXTRACT    EXTDB12C  Last Started 2018-10-04 02:16   Status RUNNING
Checkpoint Lag       00:00:12 (updated 00:00:04 ago)
Process ID           15062
Log Read Checkpoint  Oracle Integrated Redo Logs
                     2018-10-04 03:11:17
                     SCN 0.2234180 (2234180)

  Target Extract Trails:

  Trail Name                                       Seqno        RBA     Max MB Trail Type

  ./dirdat/dx                                          7      15408        500 EXTTRAIL <<<<<<

...
...

Current directory    /u01/app/oracle/product/ogg

Report file          /u01/app/oracle/product/ogg/dirrpt/EXTDB12C.rpt
Parameter file       /u01/app/oracle/product/ogg/dirprm/extdb12c.prm
Checkpoint file      /u01/app/oracle/product/ogg/dirchk/EXTDB12C.cpe
Process file         /u01/app/oracle/product/ogg/dirpcs/EXTDB12C.pce
Error log            /u01/app/oracle/product/ogg/ggserr.log

====================================================================================


Com este comando nós podemos descobrir o nome do trail (Trail Name) "./dirdat/dx", a sequência do arquivo gerado e que está sendo usado "Seqno 7", e o RBA 15408 (Relative Byte Address), que é a posição dentro do trail onde será gravada a próxima transação capturada.

 

 

Também podemos verificar no filesystem todos os arquivos trailfiles existentes:


====================================================================================

[oracle@ol75-ogg12c:/u01]$ cd $OGG_HOME/dirdat

[oracle@ol75-ogg12c:/u01/app/oracle/product/ogg/dirdat]$ ls -ltr
total 92
-rw-r-----. 1 oracle oinstall  3378 Aug  3 22:34 dx000000000
-rw-r-----. 1 oracle oinstall 21378 Aug  4 10:35 dx000000001
-rw-r-----. 1 oracle oinstall 17792 Aug  4 17:30 dx000000002
-rw-r-----. 1 oracle oinstall  7328 Sep 16 23:44 dx000000003
-rw-r-----. 1 oracle oinstall  2352 Oct  3 23:30 dx000000004
-rw-r-----. 1 oracle oinstall  1485 Oct  4 01:22 dx000000005
-rw-r-----. 1 oracle oinstall  1422 Oct  4 02:16 dx000000006
-rw-r-----. 1 oracle oinstall 15408 Oct  4 02:58 dx000000007 <<<<<<<<<

====================================================================================

 

Existem situações em que queremos ter um certo controle sob quais informações serão geradas dentro de um trailfile, para facilitar a análise e troubleshooting.
 

Vou apresentar uma maneira bem simples porém muito útil. Utilizando o comando "rollover" forçamos o processo extract a parar de escrever no arquivo atual, gerar um novo arquivo trailfile e começar a escrever nele.


Desta forma, saberemos que a partir desse momento, todas as transações capturadas ficarão salvas em um determinado trailfile.

 

====================================================================================

GGSCI (ol75-ogg12c) 4> send EXTDB12C rollover

Sending ROLLOVER request to EXTRACT EXTDB12C ...
Request processed.

GGSCI (ol75-ogg12c) 2> info EXTDB12C detail  

EXTRACT    EXTDB12C  Last Started 2018-10-04 02:16   Status RUNNING
Checkpoint Lag       00:00:08 (updated 00:00:08 ago)
Process ID           15062
Log Read Checkpoint  Oracle Integrated Redo Logs
                     2018-10-04 03:25:06
                     SCN 0.2235505 (2235505)

  Target Extract Trails:

  Trail Name                                       Seqno        RBA     Max MB Trail Type

  ./dirdat/dx                                          8       1422        500 EXTTRAIL  

...
...

Current directory    /u01/app/oracle/product/ogg

Report file          /u01/app/oracle/product/ogg/dirrpt/EXTDB12C.rpt
Parameter file       /u01/app/oracle/product/ogg/dirprm/extdb12c.prm
Checkpoint file      /u01/app/oracle/product/ogg/dirchk/EXTDB12C.cpe
Process file         /u01/app/oracle/product/ogg/dirpcs/EXTDB12C.pce
Error log            /u01/app/oracle/product/ogg/ggserr.log

====================================================================================

 

Vamos confirmar se o novo arquivo foi mesmo criado no filesystem:

 

====================================================================================

GGSCI (ol75-ogg12c) 3> sh ls -ltr ./dirdat

total 96
-rw-r-----. 1 oracle oinstall  3378 Aug  3 22:34 dx000000000
-rw-r-----. 1 oracle oinstall 21378 Aug  4 10:35 dx000000001
-rw-r-----. 1 oracle oinstall 17792 Aug  4 17:30 dx000000002
-rw-r-----. 1 oracle oinstall  7328 Sep 16 23:44 dx000000003
-rw-r-----. 1 oracle oinstall  2352 Oct  3 23:30 dx000000004
-rw-r-----. 1 oracle oinstall  1485 Oct  4 01:22 dx000000005
-rw-r-----. 1 oracle oinstall  1422 Oct  4 02:16 dx000000006
-rw-r-----. 1 oracle oinstall 15408 Oct  4 03:20 dx000000007
-rw-r-----. 1 oracle oinstall  1422 Oct  4 03:20 dx000000008 <<<<<<<<<<

====================================================================================

 

Sim, o arquivo com a sequência 8 (dx000000008) foi gerado!

 

Um detalhe, você percebeu que o comando "ls -ltr ./dirdat" foi executado de dentro do GGSCI?
Sim, também podemos executar comandos do sistema operacional sem precisar sair da linha de comando do GoldenGate.

 

Mais um recurso muito bom no GGSCI é o comando exclamação '!', com ele podemos repetir o último comando executado, sem precisar escrever ele novamente. Exemplo:

 

====================================================================================

GGSCI (ol75-ogg12c) 4> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING                                           
EXTRACT     RUNNING     EXTDB12C    00:00:11      00:00:05    
EXTRACT     RUNNING     PMPDB12C    00:00:00      00:00:03    


GGSCI (ol75-ogg12c) 5> !
info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING                                           
EXTRACT     RUNNING     EXTDB12C    00:00:11      00:00:06    
EXTRACT     RUNNING     PMPDB12C    00:00:00      00:00:04    


GGSCI (ol75-ogg12c) 6> !
info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING                                           
EXTRACT     RUNNING     EXTDB12C    00:00:11      00:00:07    
EXTRACT     RUNNING     PMPDB12C    00:00:00      00:00:05    

====================================================================================


Agora eu vou mostrar como rastrear uma transação entre todos os processos (extract, pump e replicat) utilizando comandos no ggsci e logdump.


Para isso, vamos criar uma tabela nova e gerar algumas transações para encher o arquivo trailfiles, lembrando que ele ainda está vazio porque fizemos o rollover.

 

====================================================================================

SQL> create table REP_OGG_SOURCE12C.TREINAMENTO_OGG_ORAMASTER (id number, aluno varchar2(100));

 

Table created.

 

SQL> alter table REP_OGG_SOURCE12C.TREINAMENTO_OGG_ORAMASTER add constraint PK_TREINAMENTO_OGG_ORAMASTER primary key (id) ;

 

Table altered.


SQL> desc REP_OGG_SOURCE12C.TREINAMENTO_OGG_ORAMASTER

 

 Name                       Null?    Type
 ----------------------------------------- -------- ----------------------------
 ID                       NOT NULL NUMBER
 ALUNO                            VARCHAR2(100)

 

SQL> insert into REP_OGG_SOURCE12C.TREINAMENTO_OGG_ORAMASTER values (1,'Gilson');

 

1 row created.

 

SQL> insert into REP_OGG_SOURCE12C.TREINAMENTO_OGG_ORAMASTER values (2,'Fabio Prado');

 

1 row created.

 

SQL> commit;

 

Commit complete.


SQL> select * from REP_OGG_SOURCE12C.TREINAMENTO_OGG_ORAMASTER;

 

    ID ALUNO
---------- ------------------------------
     1 Gilson  <<<<<<<<<<<<<<<<<<<<<
     2 Fabio Prado


SQL> update REP_OGG_SOURCE12C.TREINAMENTO_OGG_ORAMASTER set aluno='Gilson Martins' where id=1;

 

1 row updated.

 

SQL> commit;

 

Commit complete.

 

SQL> select * from REP_OGG_SOURCE12C.TREINAMENTO_OGG_ORAMASTER;

 

    ID ALUNO
---------- ------------------------------
     1 Gilson Martins  <<<<<<<<<<<<<<<<<<<<<
     2 Fabio Prado

====================================================================================


Verificar se o Extract coletou as transações que foram executadas:

 

====================================================================================

GGSCI (ol75-ogg12c as GGUSER_12C@golden12c) 9> send EXTDB12C stats

Sending STATS request to EXTRACT EXTDB12C ...

Start of Statistics at 2018-10-04 03:43:33.

DDL replication statistics (for all trails):

*** Total statistics since extract started     ***
    Operations                                  12.00
    Mapped operations                           11.00
    Unmapped operations                            0.00
    Other operations                            1.00
    Excluded operations                            1.00

Output to ./dirdat/dx:

Extracting from REP_OGG_SOURCE12C.TREINAMENTO_OGG_ORAMASTER to REP_OGG_SOURCE12C.TREINAMENTO_OGG_ORAMASTER:

*** Total statistics since 2018-10-04 02:17:21 ***
    Total inserts                                  4.00  <<<<<<<<<
    Total updates                                  2.00  <<<<<<<<<
    Total deletes                                  0.00
    Total discards                                 0.00
    Total operations                               6.00  <<<<<<<<<

*** Daily statistics since 2018-10-04 02:17:21 ***
    Total inserts                                  4.00
    Total updates                                  2.00
    Total deletes                                  0.00
    Total discards                                 0.00
    Total operations                               6.00

*** Hourly statistics since 2018-10-04 03:00:00 ***
    Total inserts                                  2.00  <<*******
    Total updates                                  1.00  <<*******
    Total deletes                                  0.00
    Total discards                                 0.00
    Total operations                               3.00  <<*******

*** Latest statistics since 2018-10-04 02:17:21 ***
    Total inserts                                  4.00  
    Total updates                                  2.00  
    Total deletes                                  0.00
    Total discards                                 0.00
    Total operations                               6.00  

End of Statistics.


GGSCI (ol75-ogg12c as GGUSER_12C@golden12c) 10> 

====================================================================================

 

Confirmamos que o GoldenGate capturou as transações! 
Agora vamos verificar se o Pump leu o trail file na origem e conseguiu enviar a transação para o destino:

 

====================================================================================

GGSCI (ol75-ogg12c as GGUSER_12C@golden12c) 13> send PMPDB12C stats

Sending STATS request to EXTRACT PMPDB12C ...

Start of Statistics at 2018-10-04 04:00:07.

DDL replication statistics (for all trails):

*** Total statistics since extract started     ***
    Operations                                  11.00

Output to ./dirdat/dx:

Extracting from REP_OGG_SOURCE12C.TREINAMENTO_OGG_ORAMASTER to REP_OGG_SOURCE12C.TREINAMENTO_OGG_ORAMASTER:

*** Total statistics since 2018-10-04 02:17:22 ***
    Total inserts                                  4.00
    Total updates                                  2.00
    Total deletes                                  0.00
    Total discards                                 0.00
    Total operations                               6.00

*** Daily statistics since 2018-10-04 02:17:22 ***
    Total inserts                                  4.00
    Total updates                                  2.00
    Total deletes                                  0.00
    Total discards                                 0.00
    Total operations                               6.00

*** Hourly statistics since 2018-10-04 03:00:00 ***
    Total inserts                                  2.00  <<*******
    Total updates                                  1.00  <<*******
    Total deletes                                  0.00
    Total discards                                 0.00
    Total operations                               3.00  <<*******

*** Latest statistics since 2018-10-04 02:17:22 ***
    Total inserts                                  4.00
    Total updates                                  2.00
    Total deletes                                  0.00
    Total discards                                 0.00
    Total operations                               6.00

End of Statistics.

====================================================================================

 

Até agora já confirmamos que a transação foi capturada pelo extract EXTDB12C, o pump PMPDB12C leu na origem e enviou para o destino.


Vamos confimar se o replicat já aplicou essa transação no destino.

 

====================================================================================

GGSCI (ol75-db12c) 23> send REPDB12C stats

Sending STATS request to REPLICAT REPDB12C ...

Start of Statistics at 2018-10-04 04:02:28.


Integrated Replicat Statistics:

    Total transactions                               4.00
    Redirected                                       0.00
    Replicated procedures                            0.00
    DDL operations                                   2.00
    Stored procedures                                0.00
    Datatype functionality                           0.00
    Event actions                                    0.00
    Direct transactions ratio                       50.00%

DDL replication statistics:

*** Total statistics since replicat started     ***
    Operations                                   2.00
    Mapped operations                            2.00
    Unmapped operations                          0.00
    Other operations                             0.00
    Excluded operations                          0.00
    Errors                                       0.00
    Retried errors                               0.00
    Discarded errors                             0.00
    Ignored errors                               0.00

Replicating from REP_OGG_SOURCE12C.TREINAMENTO_OGG_ORAMASTER to REP_OGG_TARGET12C.TREINAMENTO_OGG_ORAMASTER:

*** Total statistics since 2018-10-04 03:40:14 ***
    Total inserts                                  2.00  <<*******
    Total updates                                  1.00  <<*******
    Total deletes                                  0.00
    Total discards                                 0.00
    Total operations                               3.00  <<*******

*** Daily statistics since 2018-10-04 03:40:14 ***
    Total inserts                                  2.00
    Total updates                                  1.00
    Total deletes                                  0.00
    Total discards                                 0.00
    Total operations                               3.00

*** Hourly statistics since 2018-10-04 05:00:00 ***

    Total inserts                                  2.00
    Total updates                                  1.00
    Total deletes                                  0.00
    Total discards                                 0.00
    Total operations                               3.00

*** Latest statistics since 2018-10-04 03:40:14 ***
    Total inserts                                  2.00
    Total updates                                  1.00
    Total deletes                                  0.00
    Total discards                                 0.00
    Total operations                               3.00

End of Statistics.

====================================================================================

 

As transações capturadas são armazenadas no trail file em um formato que só o GoldenGate consegue ler.
Mas e se eu quiser saber o que tem em um trail file, como que faço?

 

Para isso existe o utilitário logdump, com ele é possível ler todas as transações que estão dentro do trailfile,
pesquisar transações, filtrar uma informação específica, saber quantas transações existem, entre outras atividades. Daria pra fazer um artigo só para falar de logdump com muitos detalhes, comandos e várias atividades de troubleshooting. Porém, como este é um artigo introdutório, não irei me aprofundar muito, mas veremos alguns comandos básicos para aprender como visualizar transações dentro do logdump.

 

O logdump fica armazenado no $OGG_HOME, vamos entrar nele e abrir o trafil file "./dirdat/dx000000008" e executar o comando detail para apresentar mais algumas informações na saída do comando.

 

====================================================================================
[oracle@ol75-ogg12c:/u01/app/oracle/product/ogg]$ ./logdump

 

Oracle GoldenGate Log File Dump Utility for Oracle
 

Version 12.3.0.1.4 OGGCORE_12.3.0.1.0_PLATFORMS_180415.0359

 

Copyright (C) 1995, 2018, Oracle and/or its affiliates. All rights reserved.

 

Logdump 1 >open ./dirdat/dx000000008
Current LogTrail is /u01/app/oracle/product/ogg/dirdat/dx000000008 

Logdump 2 >detail on
Logdump 3 >detail data

====================================================================================

 

Feito isso, neste momento o logdump fica posicionado no começo do trailfile, ou seja, posição "RBA 0" onde estão as informações de cabeçalho desse trafile, e para "andarmos" dentro dele, vamos usar o comando "n" de "next". 

 

Obs.: Note que o valor RBA aumenta em cada "n" executado, ou seja, estamos lendo as transações capturadas em ordem crescente.

 

====================================================================================


Logdump 4 >n 

2018/10/04 03:20:39.410.055 FileHeader           Len  1414 RBA 0  <<<<<<<<<<<
Name: *FileHeader* 
 3000 030e 3000 0008 4747 0d0a 544c 0a0d 3100 0002 | 0...0...GG..TL..1...  
 0006 3200 0004 2000 0000 3300 0008 02f2 9d94 9c18 | ..2... ...3.........  
 8d87 3400 0036 0034 7572 693a 6f6c 3735 2d6f 6767 | ..4..6.4uri:ol75-ogg  
 3132 633a 3a75 3031 3a61 7070 3a6f 7261 636c 653a | 12c::u01:app:oracle:  
 7072 6f64 7563 743a 6f67 673a 4558 5444 4231 3243 | product:ogg:EXTDB12C  
 3600 0016 0014 2e2f 6469 7264 6174 2f64 7830 3030 | 6....../dirdat/dx000  
 3030 3030 3038 3700 0001 0138 0000 0400 0000 0839 | 0000087....8.......9  
==================================================================================== 

 

Nos dois próximos registros estão as informações referentes a operações de DDL "DDLOP" e o horário em que está operação foi capturada. Além disso podemos ver também na mesma linha as informações "Len 1312" e "Len 1339", este é o tamanho desde registro (Lenght).

 

====================================================================================
Logdump 5 >n

2018/10/04 03:37:03.000.000 DDLOP                Len  1312 RBA 1422  <<<<<<<<<<<
Name:  
After  Image:                                             Partition 4   G  s   
 2c43 353d 2730 272c 2c42 373d 2730 272c 2c42 323d | ,C5='0',,B7='0',,B2=  
 2737 3433 3233 272c 2c43 3231 3d27 272c 2c42 333d | '74323',,C21='',,B3=  
 2752 4550 5f4f 4747 5f53 4f55 5243 4531 3243 272c | 'REP_OGG_SOURCE12C',  
 2c42 343d 2754 5245 494e 414d 454e 544f 5f4f 4747 | ,B4='TREINAMENTO_OGG  
 5f4f 5241 4d41 5354 4552 272c 2c43 3132 3d27 5245 | _ORAMASTER',,C12='RE  
 505f 4f47 475f 534f 5552 4345 3132 4327 2c2c 4331 | P_OGG_SOURCE12C',,C1  
 333d 2754 5245 494e 414d 454e 544f 5f4f 4747 5f4f | 3='TREINAMENTO_OGG_O  
   
Logdump 6 >n

2018/10/04 03:37:05.000.000 DDLOP                Len  1339 RBA 2874  <<<<<<<<<<<
Name:  
After  Image:                                             Partition 4   G  s   
 2c43 353d 2730 272c 2c42 373d 2730 272c 2c42 323d | ,C5='0',,B7='0',,B2=  
 2737 3433 3233 272c 2c43 3231 3d27 272c 2c42 333d | '74323',,C21='',,B3=  
 2752 4550 5f4f 4747 5f53 4f55 5243 4531 3243 272c | 'REP_OGG_SOURCE12C',  
 2c42 343d 2754 5245 494e 414d 454e 544f 5f4f 4747 | ,B4='TREINAMENTO_OGG  
 5f4f 5241 4d41 5354 4552 272c 2c43 3132 3d27 5245 | _ORAMASTER',,C12='RE  
 505f 4f47 475f 534f 5552 4345 3132 4327 2c2c 4331 | P_OGG_SOURCE12C',,C1  
 333d 2754 5245 494e 414d 454e 544f 5f4f 4747 5f4f | 3='TREINAMENTO_OGG_O ====================================================================================

 

Seguindo nos próximos registros do trailfile, encontramos os metadados da tabela com transações capturadas:

 

====================================================================================  
Logdump 7 >n

2018/10/04 02:17:21.788.736 Metadata             Len 83 RBA 4355  <<<<<<<<<<<
Name:  
*
DDR Version: 1
Database type: ORACLE
Character set ID: UTF-8
National character set ID: UTF-16
Locale: neutral
Case sensitivity: 14 14 14 14 14 14 14 14 14 14 14 14 11 14 14 14
TimeZone: GMT
Global name: GOLDEN12

Logdump 8 >n

2018/10/04 03:40:16.674.474 Metadata             Len 231 RBA 4489  <<<<<<<<<<<
Name: REP_OGG_SOURCE12C.TREINAMENTO_OGG_ORAMASTER 

*
 1)Name          2)Data Type        3)External Length  4)Fetch Offset      5)Scale         6)Level
 7)Null          8)Bump if Odd      9)Internal Length 10)Binary Length    11)Table Length 12)Most Sig DT
13)Least Sig DT 14)High Precision  15)Low Precision   16)Elementary Item  17)Occurs       18)Key Column
19)Sub DataType 20)Native DataType 21)Character Set   22)Character Length 23)LOB Type     24)Partial Type
*
TDR version: 11
Definition for table REP_OGG_SOURCE12C.TREINAMENTO_OGG_ORAMASTER
Record Length: 162
Columns: 2

ID      64     50        0  0  0 1 0     50     50     50 0 0 0 0 1    0 1   2    2       -1      0 0 0
ALUNO   64    100       56  0  0 1 0    100    100      0 0 0 0 0 1    0 0   0    1       -1      0 0 0
End of definition
====================================================================================

 

 

E finalmente começamos a encontrar as transações que nós fizemos:

  • 2 INSERTS

  • 1 UPDATE

Veja que é possível ler toda as informações que foram capturadas e replicadas facilmente, o que às vezes pode ser muito perigoso e expor informações confidenciais que estão armazenadas no banco de dados. É possível configurar o GoldenGate para criptografar as informações ao disponibilizá-las nos trailfiles (Quem sabe um assunto para um próximo artigo).

 

====================================================================================
Logdump 9 >n

2018/10/04 03:40:08.000.000 Insert               Len    23 RBA 4814  <<<<<<<<<<<
Name: REP_OGG_SOURCE12C.TREINAMENTO_OGG_ORAMASTER  (TDR Index: 1) 
After  Image:                                             Partition 12   G  b   
 0000 0500 0000 0100 3101 000a 0000 0006 0047 696c | ........1........Gil  
 736f 6e                                           | son  
Column     0 (x0000), Len     5 (x0005)  
 0000 0100 31                                      | ....1  
Column     1 (x0001), Len    10 (x000a)  
 0000 0600 4769 6c73 6f6e                          | ....Gilson  
   
Logdump 10 >n

2018/10/04 03:40:08.000.000 Insert               Len    28 RBA 4949  <<<<<<<<<<<
Name: REP_OGG_SOURCE12C.TREINAMENTO_OGG_ORAMASTER  (TDR Index: 1) 
After  Image:                                             Partition 12   G  e   
 0000 0500 0000 0100 3201 000f 0000 000b 0046 6162 | ........2........Fab  
 696f 2050 7261 646f                               | io Prado  
Column     0 (x0000), Len     5 (x0005)  
 0000 0100 32                                      | ....2  
Column     1 (x0001), Len    15 (x000f)  
 0000 0b00 4661 6269 6f20 5072 6164 6f             | ....Fabio Prado  
====================================================================================

 

Após os INSERTs, foi realizado um update na chave (PK) "1" (Column 0), como podemos observar a seguir.

 

No caso de update, o Oracle GoldenGate armazena no trailfile duas informações chamadas de: "Before Image" e "After Image", ou seja, o valor antigo e o valor novo do registro. Este recurso é muito importante para garantir a integridade da replicação, porque quando a transação for aplicada no destino, o GoldenGate irá comparar se o valor antigo que está no banco de destino, é igual ao valor antigo que foi capturado no banco de origem e que está armazenado no trailfile, se sim ele irá efetivar o UPDATE com o valor novo, se não, ocorrerá um erro no processo (ABEND).

 

====================================================================================   
Logdump 11 >n

2018/10/04 03:42:39.000.000 GGSUnifiedUpdate     Len    58 RBA 5057  <<<<<<<<<<<
Name: REP_OGG_SOURCE12C.TREINAMENTO_OGG_ORAMASTER  (TDR Index: 1) 
After  Image:                                             Partition 12   G  s   
 1700 0000 0000 0500 0000 0100 3101 000a 0000 0006 | ............1.......  
 0047 696c 736f 6e00 0005 0000 0001 0031 0100 1200 | .Gilson........1....  
 0000 0e00 4769 6c73 6f6e 204d 6172 7469 6e73      | ....Gilson Martins  
Before Image          Len    27 (x0000001b) 
BeforeColumnLen     23 (x00000017) 
Column     0 (x0000), Len     5 (x0005)  
 0000 0100 31                                      | ....1  
Column     1 (x0001), Len    10 (x000a)  
 0000 0600 4769 6c73 6f6e                          | ....Gilson  <<<<<<<<< "valor antigo"  

After Image           Len    31 (x0000001f) 
Column     0 (x0000), Len     5 (x0005)  
 0000 0100 31                                      | ....1  
Column     1 (x0001), Len    18 (x0012)  
 0000 0e00 4769 6c73 6f6e 204d 6172 7469 6e73      | ....Gilson Martins <<<<<<< "valor novo"  

====================================================================================

 

Quando chegar ao fim das transações existentes no trailfile, o valor "n" não irá retornar nada, como mostrado abaixo:

 

====================================================================================   
Logdump 12 >n

Logdump 13 >n

Logdump 14 >n

====================================================================================

 

 

Ufa! Mesmo tentando resumir bastante, essa parte do artigo ainda ficou bem longa, mas espero que tenham gostado! O GoldenGate é uma ferramenta muito versátil, e como sempre falo: "Paixão para uns e pesadelo para outros", as vezes pode bater aquele desespero quando a replicação começa a apresentar problemas, mas utilizando os recursos avançados é mais fácil conseguir resolver e entender os problemas.

 

Não perca a PARTE III, é a última deste artigo onde falarei sobre certificação e mais algumas dicas.

 

  

QUER APRENDER MAIS SOBRE ORACLE GOLDENGATE?

INSCREVA-SE NA PRÓXIMA TURMA DO TREINAMENTO CONF. E ADM. DO ORACLE GOLDEN GATE - Módulo I

 

 

  

 

 

 

 

 

Share on Facebook
Share on Twitter
Please reload

Últimos Posts