Usando o Utilitário LogDump para Acessar Registros de Arquivo de Trilha
São necessárias informações de trilha do Oracle GoldenGate para diagnóstico e solução de problemas e suporte técnico. Use o utilitário Logdump para exibir os registros de trilha do Oracle GoldenGate.
Modo de Recuperação de Trilha
Por padrão, o Extract opera no modo append, em que, se houver uma falha no processo, um marcador de recuperação será gravado na trilha e o Extract anexará dados de recuperação ao arquivo para que um histórico de todos os dados anteriores seja retido para fins de recuperação.
No modo de anexação, a inicialização do Extract determina a identidade da última transação completa que foi gravada na trilha no momento da inicialização. Com essas informações, o Extract encerra a recuperação quando o registro de commit dessa transação é encontrado na origem de dados; em seguida, ele inicia a nova captura de dados com a próxima transação confirmada que se qualifica para extração e começa a anexar os novos dados à trilha. Um Replicat começa a ler novamente a partir desse ponto de recuperação.
O modo de substituição é outra versão da recuperação do Extract usada em versões do Oracle GoldenGate anteriores à versão 10.0. Nessas versões, o processo Extract substitui os dados de transação existentes na trilha após a última posição do ponto de verificação de gravação, em vez de anexar os novos dados. A primeira transação gravada é a primeira que se qualifica para extração após a última posição de checkpoint de leitura na origem de dados.
Se a versão do Oracle GoldenGate no destino for anterior à versão 10, o processo Extract reverterá automaticamente para o modo de substituição a fim de oferecer suporte à compatibilidade retroativa. Esse comportamento pode ser controlado manualmente com o parâmetro RECOVERYOPTIONS.
Formato de Registro da Trilha
Cada registro de alteração gravado pelo Oracle GoldenGate em um arquivo de trilha ou Extract inclui uma área de cabeçalho, uma área de dados e, possivelmente, uma área de token do usuário. O cabeçalho do registro contém informações sobre o ambiente da transação e a área de dados contém os valores de dados reais que foram extraídos.
A área de token contém informações especificadas pelos usuários do Oracle GoldenGate para uso no mapeamento e na conversão de colunas.
Os arquivos de trilha do Oracle GoldenGate não são estruturados. Você pode exibir registros do Oracle GoldenGate com o utilitário Logdump fornecido com o software Oracle GoldenGate. Para obter mais informações, consulte Exibindo o Primeiro Registro na Referência de Logdump do Oracle GoldenGate. Observação: à medida que aprimoramentos são feitos no software Oracle GoldenGate, o formato do registro de trilha está sujeito a alterações que podem não ser refletidas nesta documentação. Para exibir a estrutura atual, use o utilitário Logdump.
Registro do Cabeçalho do Arquivo de Trilha
Cada arquivo de uma trilha contém um registro de cabeçalho de arquivo que é armazenado no início do arquivo. O cabeçalho do arquivo contém informações sobre o próprio arquivo de trilha. As versões anteriores do Oracle GoldenGate não contêm esse cabeçalho.
O cabeçalho do arquivo é armazenado como um registro no início de um arquivo de trilha que precede os registros de dados. As informações armazenadas no cabeçalho da trilha fornecem informações suficientes sobre os registros para ativar um processo do Oracle GoldenGate a fim de determinar se os registros estão em um formato compatível com a versão atual do Oracle GoldenGate.
Os campos do cabeçalho da trilha são armazenados como tokens, em que o formato do token permanece o mesmo em todas as versões do Oracle GoldenGate. Se uma versão do Oracle GoldenGate não suportar qualquer token, esse token será ignorado. Os tokens depracados recebem um valor padrão para preservar a compatibilidade com versões anteriores do Oracle GoldenGate.
Para garantir a compatibilidade de avanço e retrocesso de arquivos entre diferentes versões de processo do Oracle GoldenGate, os campos de cabeçalho de arquivo são gravados em um formato de token padronizado. Novos tokens criados por novas versões de um processo podem ser ignorados por versões mais antigas, para que a compatibilidade com versões anteriores seja mantida. Da mesma forma, as versões mais recentes do Oracle GoldenGate suportam tokens mais antigos. Além disso, se um token for preterido por uma nova versão do processo, um valor padrão será atribuído ao token para que as versões mais antigas ainda possam funcionar corretamente. O token que especifica a versão do arquivo é COMPATIBILITY e pode ser exibido no utilitário Logdump e também recuperando-o com a opção GGFILEHEADER da função @GETENV.
Um arquivo de trilha ou de Extract deve ter uma versão igual ou inferior à do processo que o lê. Caso contrário, o processo será encerrado. Além disso, o Oracle GoldenGate força a trilha de saída a ser a mesma versão de sua trilha ou arquivo de entrada. Quando o Extract é reiniciado, ele rola uma trilha para um novo arquivo para garantir que cada arquivo tenha apenas uma versão (a menos que o arquivo esteja vazio).
Do Oracle GoldenGate 21c em diante, para bancos de dados Oracle, você pode especificar um nome globalmente exclusivo para o banco de dados usando o parâmetro DB_UNIQUE_NAME. Se esse parâmetro de banco de dados não for definido, o DB_UNIQUE_NAME será igual a DB_NAME. Esse recurso permite a identificação exclusiva da origem dos dados da trilha, exibindo o cabeçalho do arquivo de trilha.
Consulte o parâmetro [GETENV](/pls/topic/lookup?ctx=en/middleware/goldengate/core/21.3/admin&id=GWURF-GUID-B84527F5-91BA-4E2E-BC37-92D1B6C35735) para saber sobre o uso do token DbUniqueName.
O token DbUniqueName será gravado em arquivos de trilha com nível de compatibilidade 19.1. No entanto, as releases anteriores do Oracle GoldenGate que suportam esse nível de compatibilidade ignorarão o novo token. O token pertence ao grupo de Informações do Banco de Dados. O campo será limitado a 65536 bytes, para permitir o ajuste de todos os valores possíveis de DB_UNIQUE_NAME, limitado a 30 caracteres.
Como os processos do Oracle GoldenGate são dissociados e podem ter diferentes versões do Oracle GoldenGate, o cabeçalho do arquivo de cada arquivo de trilha contém um indicador de versão. Por padrão, a versão de um arquivo de trilha é a versão atual do processo que criou o arquivo. Se você precisar definir a versão de uma trilha, use a opção FORMAT do parâmetro EXTTRAIL, EXTFILE, RMTTRAIL ou RMTFILE.
Você pode exibir o cabeçalho da trilha com o comando FILEHEADER no utilitário Logdump. Para obter mais informações sobre os tokens no cabeçalho do arquivo, consulte Referência de Logdump do Oracle GoldenGate.
Registro do Nome da Partição no Cabeçalho do Arquivo de Trilha
Cada registro DML no cabeçalho do arquivo de trilha pode conter um índice para um registro de nome de partição (PNR). Como o nome completo da partição pode ser longo, um PNR é criado em cada arquivo de trilha pela primeira vez que a partição é gravada. Cada PNR contém o nome da partição e o ID do objeto da partição.
Para o processo Extract principal, PNR é gerado somente para correspondência de partição e incluído pelos parâmetros PARTITION e PARTITIONEXCLUDE. Os registros DML dessas partições têm um índice para o registro de definição de tabela e outro índice para o registro de nome da partição. Registros DML de todas as outras tabelas, como tabelas não particionadas ou tabelas particionadas que não correspondem ou foram excluídas pelos parâmetros PARTITION ou PARTITIONEXCLUDE, só têm um índice para o registro de definição de tabela como feito hoje. Para o Serviço de Distribuição, o PNR será gravado se o registro da trilha de origem contiver um índice PNR.
Exibindo o Nome da Partição e o Índice PNR no Logdump
Use o utilitário Logdump para exibir o registro do nome da partição e o DML que contém o índice PNR.
Veja um exemplo que mostra a captura da exibição em um arquivo:
$ logdump > output.txt <<EOF
ghdr on
detail data
open ./dirdat/tr000000000
n 200
EOF
A saída exibe o PNR e o DML com os valores de índice PNR, conforme mostrado no exemplo a seguir:
HDR-IND : E (X45) PARTITION : . (XFF80)
UNDOFLAG : . (X00) BEFOREAFTER: A (X41)
RECLENGTH : 0 (X0000) IO TIME : 2019/01/17 16:48:01.129.045
IOTYPE : 170 (XAA) ORIGNODE : 4 (X04)
TRANSIND : . (X03) FORMATTYPE : R (X52)
SYSKEYLEN : 0 (X00) INCOMPLETE : . (X00)
TDR/PNR IDX: (001, 002) AUDITPOS : 13287580
CONTINUED : N (X00) RECCOUNT : 1 (X01)
2019/01/17 16:48:01.129.045 METADATA LEN 0 RBA 3425
PARTITION NAME: P1 PARTITION ID: 75,234 FLAGS: X00000001
___________________________________________________________________
HDR-IND : E (X45) PARTITION : . (XFF8C)
UNDOFLAG : . (X00) BEFOREAFTER: A (X41)
RECLENGTH : 18 (X0012) IO TIME : 2019/01/17 16:47:58.000.000
IOTYPE : 5 (X05) ORIGNODE : 255 (XFF)
TRANSIND : . (X00) FORMATTYPE : R (X52)
SYSKEYLEN : 0 (X00) INCOMPLETE : . (X00)
AUDITRBA : 15 AUDITPOS : 13287580
CONTINUED : N (X00) RECCOUNT : 1 (X01)
2019/01/17 16:47:58.000.000 INSERT LEN 18 RBA 3486
NAME: TKGGU1.T1 (PARTITION: P1, TDR/PNR INDEX: 1/2)
AFTER IMAGE: PARTITION X8C G B
0000 0500 0000 0100 3101 0005 0000 0001 0031 | ........1........1
COLUMN 0 (X0000), LEN 5 (X0005)
0000 0100 31 | ....1
COLUMN 1 (X0001), LEN 5 (X0005)
0000 0100 31 | ....1
Exemplo de Registro do Oracle GoldenGate
A seguir, ilustra um registro do Oracle GoldenGate como exibido com Logdump. A primeira parte (a lista de campos) é o cabeçalho e a segunda parte é a área de dados. O registro se parece com isso em todas as plataformas suportadas pelo Oracle GoldenGate. Figura 1: Exemplo de um Registro do Oracle GoldenGate

Área do Cabeçalho do Registro
O cabeçalho do registro do Oracle GoldenGate fornece os metadados dos dados contidos no registro e inclui as informações a seguir.
-
O tipo de operação, como uma inserção, atualização ou exclusão
-
O indicador antes ou depois para atualizações
-
Informações da transação, como grupo de transações e timestamp de commit
Descrição dos Campos do Cabeçalho
A seguir, são descritos os campos do cabeçalho de registro do Oracle GoldenGate. Alguns campos se aplicam apenas a determinadas plataformas.
Tabela: Campos de cabeçalho de registro do Oracle GoldenGate
| Campo | Descrição |
|---|---|
|
Sempre deve ser um valor E, indicando que o registro foi criado pelo processo de Extração. Qualquer outro valor indica dados inválidos. |
|
O tamanho, em bytes, do buffer de registro. |
|
O tipo de operação representado pelo registro. Consulte Tabela 12-* para obter uma lista de tipos de operação. |
|
O local do registro na transação atual. Os valores são: 0 - primeiro registro na transação 1 - nem o primeiro nem o último registro na transação 2 - último registro na transação 3 - somente registro na transação |
|
Identifica o identificador do log de transação, como o número de sequência do redo log da Oracle. |
|
(Windows e UNIX) Identifica se o registro é ou não um segmento de um dado maior que é muito grande para caber em um registro. LOBs, CLOBS e alguns VARCHARs são armazenados em segmentos. Registros unificados que contêm imagens antes e depois em um único registro (devido ao parâmetro S - o registro é um segmento; indica ao Oracle GoldenGate que esses dados continuam para outro registro. N - não há continuação dos dados para outro segmento; pode ser o último de uma série ou um registro que não seja um segmento de dados maiores. |
|
Para registros Windows e UNIX, esse campo sempre será um valor de 4 (registro compactado FieldComp em formato interno). Para essas plataformas, o termo Partição não indica que os dados representam qualquer partição lógica ou física específica dentro da estrutura do banco de dados. |
|
Identifica se o registro é uma imagem antes (B) ou depois (A) de uma operação de atualização. Os registros que combinam imagens antes e depois como resultado do parâmetro UPDATERECORDFORMAT são marcados como imagens depois. As inserções são sempre após as imagens, as exclusões são sempre antes das imagens. |
|
O horário em que a operação ocorreu, no horário local do sistema de origem, no formato GMT. Esse horário pode ser o mesmo ou diferente para cada operação em uma transação, dependendo de quando a operação ocorreu. |
|
Identifica se os dados foram lidos no log de transações ou extraídos do banco de dados.</p>F - extraído do banco de dados<p>R - legível no log de transações |
|
Este campo está obsoleto. |
|
Identifica a posição no log de transação dos dados. |
|
(Windows e UNIX) Usado para dados LOB quando deve ser dividido em partes para ser gravado no arquivo do Oracle GoldenGate. RecCount é usado para montar novamente os chunks. |
Usando Dados de Cabeçalho
Alguns dos dados disponíveis no cabeçalho do registro do Oracle GoldenGate podem ser usados para mapeamento usando a opção GGHEADER da função @GETENV ou usando qualquer um dos seguintes elementos de transação como expressão de origem em uma instrução COLMAP no parâmetro TABLE ou MAP.
-
GGS_TRANS_TIMESTAMP
-
GGS_TRANS_RBA
-
GGS_OP_TYPE
-
GGS_BEFORE_AFTER_IND
Área de Dados do Registro
A área de dados do registro de trilha do Oracle GoldenGate contém o seguinte:
-
O horário em que a alteração foi confirmada no banco de dados de origem
-
O tipo de operação do banco de dados
-
A duração do registro
-
O endereço de byte relativo dentro do arquivo de trilha
-
O nome da tabela
-
Os dados são alterados no formato hexadecimal
A seguir, você explica as diferenças nos formatos de imagem de registro usados pelo Oracle GoldenGate em sistemas Windows, UNIX, Linux e NonStop.
Formato de Imagem de Registro Completo (Origens NonStop)
Uma imagem de registro completa contém os valores de todas as colunas de uma linha processada. O formato de imagem de registro completo é gerado na trilha quando o sistema de origem é HP NonStop e somente quando o IOType especificado no cabeçalho do registro é um dos seguintes:
3 - Delete 5 - Insert 10 - Update
Cada imagem de registro completo tem o mesmo formato que se recuperado de um programa que lê o arquivo ou tabela original diretamente. Para tabelas SQL, campos de data e hora, nulos e outros dados são gravados exatamente como um programa os selecionaria em um buffer de aplicativo. Embora os campos de data e hora sejam representados internamente como um timestamp de oito bytes, seu formato externo pode ser até 26 bytes expressos como uma string. Os registros de inscrição são recuperados à medida que existem no arquivo original.
Quando o tipo de operação é Insert ou Update, a imagem contém o conteúdo do registro após a operação (a imagem posterior). Quando o tipo de operação é Delete, a imagem contém o conteúdo do registro antes da operação (a imagem anterior).
Para registros gerados de um banco de dados Enscribe, imagens de registro completo são geradas, a menos que o arquivo original tenha o atributo AUDITCOMPRESS definido como ON. Quando AUDITCOMPRESS é ON, os registros de atualização compactados são gerados sempre que o arquivo original recebe uma operação de atualização. (Uma imagem completa pode ser recuperada pelo processo Extract usando o parâmetro FETCHCOMPS.)
Formato de Imagem de Registro Compactado (Windows, UNIX, Origens Linux)
Uma imagem de registro compactada contém apenas a chave (primária, exclusiva, KEYCOLS) e as colunas que foram alteradas na linha processada. Por padrão, os registros de trilha gravados por processos em sistemas Windows e UNIX são sempre compactados.
O formato de um registro compactado é o seguinte:
column_index
column_length
column_data[...]
Onde:
-
column_index
é o índice ordinal da coluna dentro da tabela de origem (2 bytes).
-
colum_length
é o comprimento dos dados (2 bytes).
-
column_data
são os dados, incluindo
NULL
ou
VARCHAR
indicadores de comprimento.
Os registros de inscrição gravados na plataforma NonStop podem ser compactados. O formato de um registro Enscribe compactado é o seguinte:
field_offset
field_length field_value[...]
Onde:
-
field_offset
é o deslocamento dentro do registro original do valor alterado (2 bytes).
-
field_length
é o comprimento dos dados (2 bytes).
-
field_value
são os dados, incluindo
NULL
ou
VARCHAR
indicadores de comprimento.
O primeiro campo em um registro Enscribe compactado é a chave primária ou do sistema.
Área de Tokens
O registro de trilha também pode conter duas áreas para tokens. Um é para uso interno e não está documentado aqui, e o outro é a área de tokens do usuário. Os tokens de usuário são valores de ambiente que são capturados e armazenados no registro de trilha para replicação em colunas de destino ou outros fins. Se usados, esses tokens seguirão a parte de dados do registro e aparecerão como os seguintes quando exibidos com Logdump:
| Parâmetro | Valor |
|---|---|
TKN-HOST TKN-GROUP TKN-BA_IND TKN-COMMIT_TS TKN-POS TKN-RBA TKN-TABLE TKN-OPTYPE TKN-LENGTH TKN-TRAN_IND |
: syshq : EXTORA : AFTER : 2011-01-24 17:08:59.000000 : 3604496 : 4058 : SOURCE.CUSTOMER : INSERT : 57 : BEGIN |
Tipos de Operação do Oracle GoldenGate
A seguir estão alguns dos tipos de operação do Oracle GoldenGate. Tipos podem ser adicionados à medida que uma nova funcionalidade é adicionada ao Oracle GoldenGate. Para obter uma lista mais atualizada, use o comando SHOW RECTYPE no utilitário Logdump:
| Tipo | Descrição | Plataforma |
|---|---|---|
| 1-Abort | Transação abortada. | NSK TMF |
| 2-Commit | Uma transação confirmada. | NSK TMF |
| 3-Delete | Um registro/linha foi excluído. Um registro Delete geralmente contém uma imagem de registro completa. No entanto, se o parâmetro COMPRESSDELETES tiver sido usado, somente as colunas de chave estarão presentes. |
Todos |
| 4-EndRollback | Um rollback de banco de dados foi encerrado | NSK TMF |
| 5-Insert | Um registro/linha foi inserido. Um registro Insert contém uma imagem de registro completa. |
Todos |
| 6-Prepared | Uma transação em rede foi preparada para confirmação. | NSK TMF |
| 7-TMF-Desligamento | Ocorreu um desligamento TMF. | NSK TMF |
| 8-TransBegin | Não é mais usado. | NSK TMF |
| 9-TransRelease | Não é mais usado. | NSK TMF |
| 10-Update | Um registro/linha foi atualizado. Um registro Update contém uma imagem de registro completa. Observação: Se o indicador de partição no cabeçalho do registro for 4, o registro estará no formato FieldComp (veja abaixo) e a atualização será compactada. |
Todos |
| 11-UpdateComp | Um registro/linha no formato TMF AuditComp foi atualizado. Neste formato, somente os bytes alterados estão presentes. Um descritor de 4 bytes no formato 2-byte_offset2-byte_length precede cada fragmento de dados. O deslocamento de byte é o índice ordinal da coluna dentro da tabela de origem. O tamanho é o tamanho dos dados. |
NSK TMF |
| 12-FileAlter | Um atributo de um arquivo de banco de dados foi alterado. | NSK |
| 13-FileCreate | Um arquivo de banco de dados foi criado. | NSK |
| 14-FilePurge | Um arquivo de banco de dados foi excluído. | NSK |
| 15-FieldComp | Uma linha em uma tabela SQL foi atualizada. Neste formato, apenas os bytes alterados estão presentes. Antes que as imagens de colunas inalteradas não sejam registradas pelo banco de dados. Um descritor de 4 bytes no formato 2-byte_offset2-byte_length precede cada fragmento de dados. O deslocamento de byte é o índice ordinal da coluna dentro da tabela de origem. O tamanho é o tamanho dos dados. Um indicador de partição de 4 no cabeçalho do registro indica o formato FieldComp. |
Todos |
| 16-FileRename | Um arquivo foi renomeado. | NSK |
| 17-AuxPointer | Contém informações sobre quais trilhas AUX têm novos dados e o local para leitura. | NSK TMF |
| 18-NetworkCommit | Uma transação em rede foi confirmada. | NSK TMF |
| 19-NetworkAbort | Uma transação em rede foi abortada. | NSK TMF |
| 90-(GGS)SQLCol | Uma coluna ou colunas em uma tabela SQL foram adicionadas, ou um atributo foi alterado. | NSK |
| 100-(GGS)Purgedata | Todos os dados foram removidos do arquivo (PURGEDATA). |
NSK |
| 101-(GGS)Expurgar(Arquivo) | Um arquivo foi expurgado. | NSK não-TMF |
| 102-(GGS)Criar(Arquivo) | Um arquivo foi criado. O registro do Oracle GoldenGate contém os atributos do arquivo. | NSK não-TMF |
| 103-(GGS)Alter(Arquivo) | Um arquivo foi alterado. O registro do Oracle GoldenGate contém os atributos de arquivo alterados. | NSK não-TMF |
| 104-(GGS)Renomear(Arquivo) | Um arquivo foi renomeado. O registro do Oracle GoldenGate contém o nome original e o novo. | NSK não-TMF |
| 105-(GGS)Modo de configuração | Uma operação SETMODE foi executada. O registro do Oracle GoldenGate contém as informações do SETMODE. |
NSK não-TMF |
| 106-GGSChangeLabel | Uma operação CHANGELABEL foi executada. O registro do Oracle GoldenGate contém as informações do CHANGELABEL. |
NSK não-TMF |
| 107-(GGS)Controle | Uma operação CONTROL foi executada. O registro do Oracle GoldenGate contém as informações do CONTROL. |
NSK não-TMF |
115 e 117 (GGS)KeyFieldComp(32) |
Uma chave primária foi atualizada. O registro do Oracle GoldenGate contém a imagem anterior da chave e a imagem posterior da chave e da linha. Os dados estão no formato FieldComp (compactados), o que significa que, antes das imagens de colunas inalteradas, não são registradas pelo banco de dados. |
windows e UNIX |
116-LargeObject 116-LOB |
Identifica uma coluna RAW, BLOB, CLOB ou LOB. Os dados desse tipo são armazenados em vários registros. |
windows e UNIX |
| 132-(GGS) SequenceOp | Identifica uma operação em uma sequência. | windows e UNIX |
ATUALIZAÇÃO 134-UNIFIED ATUALIZAÇÃO 135-UNIFICADA |
Identifica um registro de trilha unificado que contém valores antes e depois no mesmo registro. A imagem anterior em um UNIFIED UPDATE contém todas as colunas que estão disponíveis no registro de transação para as imagens antes e depois. A imagem anterior em um UNIFIED UPDATE contém todas as colunas disponíveis no registro da transação, mas a imagem posterior é limitada às colunas de chave primária e às colunas que foram modificadas no UPDATE. |
windows e UNIX |
| 160 - DDL_Op | Identifica uma operação DDL | windows e UNIX |
161- RecordFragment |
Identifica parte de uma linha grande que deve ser armazenada em vários registros (mais do que apenas o registro base). | windows e UNIX |
Bloco 200-GGSNão Estruturado 200-BulkIO |
Uma operação BULKIO foi executada. O registro do Oracle GoldenGate contém o bloco RAW DP2. |
NSK não-TMF |
| 201 através 204 | Esses são diferentes tipos de registros de rastreamento NonStop. Os registros de rastreamento são usados pelos analistas de suporte do Oracle GoldenGate. Estes são descrições.
|
NSK não-TMF |
| 205-GGSComment | Indica um registro de comentário criado pelo utilitário Logdump. Os registros de comentários são criados pelo Logdump no início e no fim dos dados que são salvos em um arquivo com o comando SAVE do Logdump. |
Todos |
| 249 através 254 | Esses são diferentes tipos de registros de rastreamento NonStop. Os registros de rastreamento são usados pelos analistas de suporte do Oracle GoldenGate. Estes são descrições.
|
NSK não-TM |