Detalhes Adicionais das Tabelas de Checkpoint

Quando os pontos de verificação do banco de dados estão sendo usados, o Oracle GoldenGate cria uma tabela de pontos de verificação com um nome definido pelo usuário no banco de dados durante a execução do comando ADD CHECKPOINTTABLE ou um usuário pode criar a tabela usando o chkpt_db_create.sql script (em que db é uma abreviação do tipo de banco de dados que o script suporta).

Há duas tabelas: a tabela de checkpoint principal e uma tabela de checkpoint auxiliar que é criada automaticamente. A tabela auxiliar, conhecida como tabela de transação, tem o nome da tabela de checkpoint principal anexada a _lox. Cada Replicat, ou cada thread de um Replicat coordenado, usa uma linha na tabela de checkpoint para armazenar suas informações de andamento.

No momento do checkpoint, geralmente há algumas transações (entre o total de n transações) que foram aplicadas, e o restante ainda está em andamento. Por exemplo, se o Replicat estiver processando um grupo de n transações que variam de CSN1 a CSN3. CSN1 é a marca d'água alta e CSN3 é a marca d'água baixa. Qualquer transação com um CSN maior que a marca d'água alta não foi processada, e qualquer transação com um CSN menor que a marca d'água baixa já foi processada. As transações concluídas são armazenadas na coluna LOG_CMPLT_XID da tabela de checkpoint. Qualquer excesso dessas transações é armazenado na tabela de transações (tabela de checkpoint auxiliar) na coluna LOG_CMPLT_XID dessa tabela.

Atualmente, o Replicat (ou cada thread Replicat de um Replicat coordenado) aplica transações em série (não em paralelo); portanto, a marca d'água alta (o valor LOG_CSN na tabela) é sempre a mesma que a marca d'água baixa (o valor LOG_CMPLT_CSN na tabela) e geralmente há apenas um ID de transação na coluna LOG_CMPLT_XID. A única exceção é quando há várias transações que compartilham o mesmo CSN.

Não altere os nomes ou atributos das colunas nessas tabelas. Você pode alterar os atributos de armazenamento de tabela conforme necessário.

Coluna Descrição
LOG_BSN
O LOG_BSN fornece as informações necessárias para definir Extract no tempo para reprocessar transações. É necessário filtrar por Replicat porque o Extract provavelmente gerará novamente uma pequena quantidade de dados que já foi aplicada pelo Replicat.
VERSION
A versão do formato da tabela de checkpoint. Permite que aprimoramentos futuros sejam identificados como números de versão da tabela.
AUDIT_TS
O timestamp da confirmação da transação de origem.
SEQNO
O número de sequência da trilha de entrada que o Replicat estava lendo no momento do checkpoint.
RBA
O endereço de byte relativo que o Replicat atingiu na trilha identificada por SEQNO. RBA + SEQNO fornecem uma posição absoluta na trilha que identifica o andamento do Replicat no momento do checkpoint.
GROUP_NAME (primary key)
O nome de um grupo Replicat usando essa tabela para checkpoints. Pode haver vários grupos Replicat usando a mesma tabela. Esta coluna faz parte da chave primária.
LAST_UPDATE_TS
A data e a hora em que a tabela de checkpoint foi atualizada pela última vez.
CREATE_TS
A data e a hora em que a tabela de checkpoint foi criada.
CURRENT_DIR
O diretório ou pasta home atual do Oracle GoldenGate.
LOG_CMPLT_XIDS
Armazena as transações entre as marcas d'água altas e baixas que já estão aplicadas.
LOG_CMPLT_CSN
Armazena a marca d'água baixa, ou o limite inferior, dos CSNs. Qualquer transação com um CSN inferior a este valor já foi processada.
LOG_CSN
Armazena a marca d'água alta, ou o limite superior, das CSNs. Nenhuma transação com um CSN maior que este valor foi processada.
LOG_XID
Não usado. Mantido para compatibilidade com versões anteriores.
GROUP_KEY (primary key)
Um identificador único que, juntamente com
GROUPNAME
, identifica exclusivamente um checkpoint, independentemente de quantos grupos Replicat estão gravando na mesma tabela. Esta coluna faz parte da chave primária.
Coluna Descrição
GROUP_KEY
Um identificador exclusivo que, junto com GROUPNAME, identifica exclusivamente um checkpoint, independentemente de quantos grupos Replicat estão gravando na mesma tabela. Essa coluna faz parte da chave primária da tabela de transações.
LOG_CMPLT_XIDS_SEQ
Cria linhas exclusivas no caso de haver tantas transações de excesso que várias linhas são necessárias para armazenar todas elas. Essa coluna faz parte da chave primária da tabela de transações.
LOG_CMPLT_XIDS
Armazena o transbordamento de transações entre as marcas d'água altas e baixas que já estão aplicadas.
LOG_CMPLT_CSN
A chave estrangeira que faz referência à tabela de checkpoint. Essa coluna faz parte da chave primária da tabela de transações.
GROUP_NAME
O nome de um grupo Replicat usando essa tabela para checkpoints. Pode haver vários grupos Replicat usando a mesma tabela. Essa coluna faz parte da chave primária da tabela de transações.

Informações do Checkpoint Interno

O comando INFO com a opção SHOWCH não só exibe entradas de checkpoint atuais, como também exibe informações de metadados sobre o próprio registro. Essas informações não estão documentadas e são para uso pelos processos do Oracle GoldenGate e pela equipe de suporte ao resolver um caso de suporte.

Os metadados estão contidos nas entradas a seguir na saída SHOWCH.

Header:

    Version = 2

    Record Source = A

    Type = 1

    # Input Checkpoints = 1

    # Output Checkpoints = 0

    File Information:

    Block Size = 2048

    Max Blocks = 100

    Record Length = 2048

    Current Offset = 0

    Configuration:

    Data Source = 0

    Transaction Integrity = -1

    Task Type = 0

    Status:

    Start Time = 2011-01-12 13:10:13

    Last Update Time = 2011-01-12 21:23:31

    Stop Status = A

    Last Result = 400

INFO EXTRACT SHOWCH Comando: Informações do Checkpoint

O exemplo a seguir apresenta as informações do checkpoint retornadas pelo comando INFO EXTRACT com a opção SHOWCH. Nesse caso, a origem de dados é um cluster de banco de dados Oracle RAC, portanto, há informações de thread incluídas na saída. Você pode exibir checkpoints anteriores especificando o número deles que deseja exibir após o argumento SHOWCH.

EXTRACT JC108XT Last Started 2011-01-01 14:15 Status ABENDED
Checkpoint Lag 00:00:00 (updated 00:00:01 ago)
Log Read Checkpoint File /orarac/oradata/racq/redo01.log
 2011-01-01 14:16:45 Thread 1, Seqno 47, RBA 68748800
Log Read Checkpoint File /orarac/oradata/racq/redo04.log
 2011-01-01 14:16:19 Thread 2, Seqno 24, RBA 65657408
Current Checkpoint Detail:
Read Checkpoint #1
 Oracle RAC Redo Log
 Startup Checkpoint (starting position in data source):
 Thread #: 1
 Sequence #: 47
 RBA: 68548112
 Timestamp: 2011-01-01 13:37:51.000000
 SCN: 0.8439720
 Redo File: /orarac/oradata/racq/redo01.log

Recovery Checkpoint (position of oldest unprocessed transaction in data source):
 Thread #: 1
 Sequence #: 47
 RBA: 68748304
 Timestamp: 2011-01-01 14:16:45.000000
 SCN: 0.8440969
Redo File: /orarac/oradata/racq/redo01.log
 Current Checkpoint (position of last record read in the data source):
 Thread #: 1
 Sequence #: 47
 RBA: 68748800
 Timestamp: 2011-01-01 14:16:45.000000
 SCN: 0.8440969
 Redo File: /orarac/oradata/racq/redo01.log
Read Checkpoint #2
 Oracle RAC Redo Log
 Startup Checkpoint(starting position in data source):
 Sequence #: 24
 RBA: 60607504
 Timestamp: 2011-01-01 13:37:50.000000
 SCN: 0.8439719
 Redo File: /orarac/oradata/racq/redo04.log
Recovery Checkpoint (position of oldest unprocessed transaction in data source):
 Thread #: 2
 Sequence #: 24
 RBA: 65657408
 Timestamp: 2011-01-01 14:16:19.000000
 SCN: 0.8440613
 Redo File: /orarac/oradata/racq/redo04.log
 Current Checkpoint (position of last record read in the data source):
 Thread #: 2
 Sequence #: 24
 RBA: 65657408
 Timestamp: 2011-01-01 14:16:19.000000
 SCN: 0.8440613
 Redo File: /orarac/oradata/racq/redo04.log
Write Checkpoint #1
 GGS Log Trail
 Current Checkpoint (current write position):
 Sequence #: 2
 RBA: 2142224
 Timestamp: 2011-01-01 14:16:50.567638
 Extract Trail: ./dirdat/eh
 Header:
 Version = 2
 Record Source = A
 Type = 6
 # Input Checkpoints = 2
 # Output Checkpoints = 1
 File Information:
 Block Size = 2048
 Max Blocks = 100
 Record Length = 2048
 Current Offset = 0
Configuration:
 Data Source = 3
 Transaction Integrity = 1
 Task Type = 0
 Status:
 Start Time = 2011-01-01 14:15:14
 Last Update Time = 2011-01-01 14:16:50
 Stop Status = A
 Last Result = 400

INFO REPLICAT, SHOWCH: Informações do Checkpoint

O comando básico mostra os pontos de verificação atuais. Para exibir um número específico de pontos de verificação anteriores, digite o valor após o argumento SHOWCH.

REPLICAT JC108RP Last Started 2011-01-12 13:10 Status RUNNING
Checkpoint Lag 00:00:00 (updated 111:46:54 ago)
Log Read Checkpoint File ./dirdat/eh000000000
 First Record RBA 3702915
Current Checkpoint Detail:
 Read Checkpoint #1
 GGS Log Trail
 Startup Checkpoint(starting position in data source):
 Sequence #: 0
 RBA: 3702915
 Timestamp: Not Available
 Extract Trail: ./dirdat/eh
 Current Checkpoint (position of last record read in the data source):
 Sequence #: 0
 RBA: 3702915
 Timestamp: Not Available
 Extract Trail: ./dirdat/eh
 Header:
 Version = 2
 Record Source = A
 Type = 1
 # Input Checkpoints = 1
 # Output Checkpoints =
 File Information:
 Block Size = 2048
 Max Blocks = 100
 Record Length = 2048
 Current Offset = 0
 Configuration:
 Data Source = 0
 Transaction Integrity = -1
 Task Type = 0
 Status:
 Start Time = 2011-01-12 13:10:13
 Last Update Time = 2011-01-12 21:23:31
 Stop Status = A
 Last Result = 400