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 |
|---|---|
|
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. |
|
A versão do formato da tabela de checkpoint. Permite que aprimoramentos futuros sejam identificados como números de versão da tabela. |
|
O timestamp da confirmação da transação de origem. |
|
O número de sequência da trilha de entrada que o Replicat estava lendo no momento do checkpoint. |
|
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. |
|
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. |
|
A data e a hora em que a tabela de checkpoint foi atualizada pela última vez. |
|
A data e a hora em que a tabela de checkpoint foi criada. |
|
O diretório ou pasta home atual do Oracle GoldenGate. |
|
Armazena as transações entre as marcas d'água altas e baixas que já estão aplicadas. |
|
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. |
|
Armazena a marca d'água alta, ou o limite superior, das CSNs. Nenhuma transação com um CSN maior que este valor foi processada. |
|
Não usado. Mantido para compatibilidade com versões anteriores. |
|
Um identificador único que, juntamente com , 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 |
|---|---|
|
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. |
|
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. |
|
Armazena o transbordamento de transações entre as marcas d'água altas e baixas que já estão aplicadas. |
|
A chave estrangeira que faz referência à tabela de checkpoint. Essa coluna faz parte da chave primária da tabela de transações. |
|
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