Dettagli aggiuntivi tabelle checkpoint

Quando si utilizzano i checkpoint del database, Oracle GoldenGate crea una tabella di checkpoint con un nome definito dall'utente nel database all'esecuzione del comando ADD CHECKPOINTTABLE oppure un utente può creare la tabella utilizzando il comando chkpt_db_create.sql script (dove db è un'abbreviazione del tipo di database supportato dallo script).

Sono disponibili due tabelle: la tabella dei checkpoint principale e una tabella dei checkpoint ausiliari creata automaticamente. La tabella ausiliaria, nota come tabella delle transazioni, riporta il nome della tabella di checkpoint principale aggiunta a _lox. Ogni Replicat, o ogni thread di un Replicat coordinato, utilizza una riga nella tabella dei checkpoint per memorizzare le relative informazioni di avanzamento.

Al momento del checkpoint, in genere ci sono un certo numero di transazioni (tra il totale n transazioni) che sono state applicate e le altre sono ancora in corso. Ad esempio, se Replicat sta elaborando un gruppo di n transazioni che vanno da CSN1 a CSN3. CSN1 è la filigrana alta e CSN3 è la filigrana bassa. Qualsiasi transazione con un CSN superiore alla filigrana alta non è stata elaborata e qualsiasi transazione con un CSN inferiore alla filigrana bassa è già stata elaborata. Le transazioni completate vengono memorizzate nella colonna LOG_CMPLT_XID della tabella dei checkpoint. Qualsiasi overflow di queste transazioni viene memorizzato nella tabella delle transazioni (tabella dei checkpoint ausiliari) nella colonna LOG_CMPLT_XID di tale tabella.

Attualmente, Replicat (o ogni thread Replicat di un Replicat coordinato) applica le transazioni in serie (non in parallelo); pertanto, la filigrana alta (il valore LOG_CSN nella tabella) è sempre la stessa della filigrana bassa (il valore LOG_CMPLT_CSN nella tabella) e in genere c'è un solo ID transazione nella colonna LOG_CMPLT_XID. L'unica eccezione è rappresentata dalla presenza di più transazioni che condividono lo stesso CSN.

Non modificare i nomi o gli attributi delle colonne in queste tabelle. È possibile modificare gli attributi di memorizzazione delle tabelle in base alle esigenze.

Colonna Descrizione
LOG_BSN
LOG_BSN fornisce le informazioni necessarie per reimpostare Extract in tempo per rielaborare le transazioni. Alcuni filtri in base a Replicat sono necessari perché Extract probabilmente genererà di nuovo una piccola quantità di dati già applicati da Replicat.
VERSION
Versione del formato della tabella dei checkpoint. Consente di identificare i miglioramenti futuri come numeri di versione della tabella.
AUDIT_TS
L'indicatore orario del commit della transazione di origine.
SEQNO
Numero di sequenza del trail di input letto da Replicat al momento del checkpoint.
RBA
Indirizzo di byte relativo raggiunto da Replicat nel trail identificato da SEQNO. RBA + SEQNO forniscono una posizione assoluta nel trail che identifica l'avanzamento di Replicat al momento del checkpoint.
GROUP_NAME (primary key)
Il nome di un gruppo Replicat che utilizza questa tabella per i checkpoint. La stessa tabella può contenere più gruppi Replicat. Questa colonna fa parte della chiave primaria.
LAST_UPDATE_TS
La data e l'ora dell'ultimo aggiornamento della tabella dei checkpoint.
CREATE_TS
La data e l'ora di creazione della tabella di checkpoint.
CURRENT_DIR
La directory o la cartella home corrente di Oracle GoldenGate.
LOG_CMPLT_XIDS
Memorizza le transazioni tra i watermark alti e bassi già applicati.
LOG_CMPLT_CSN
Memorizza la filigrana bassa, o il limite inferiore, dei CSN. Qualsiasi transazione con un numero CSN inferiore a questo valore è già stata elaborata.
LOG_CSN
Memorizza la filigrana alta, o il limite superiore, dei CSN. Nessuna transazione con un numero CSN superiore a questo valore non è stata elaborata.
LOG_XID
Non utilizzata. Conservato per compatibilità con le versioni precedenti.
GROUP_KEY (primary key)
Un identificatore unico che, insieme a
GROUPNAME
, identifica in modo univoco un checkpoint indipendentemente dal numero di gruppi Replicat che scrivono nella stessa tabella. Questa colonna fa parte della chiave primaria.
Colonna Descrizione
GROUP_KEY
Identificativo univoco che, insieme a GROUPNAME, identifica in modo univoco un checkpoint indipendentemente dal numero di gruppi Replicat che scrivono nella stessa tabella. Questa colonna fa parte della chiave primaria della tabella delle transazioni.
LOG_CMPLT_XIDS_SEQ
Crea righe univoche nel caso in cui siano presenti così tante transazioni di overflow che sono necessarie più righe per memorizzarle tutte. Questa colonna fa parte della chiave primaria della tabella delle transazioni.
LOG_CMPLT_XIDS
Memorizza l'overflow delle transazioni tra i watermark alti e bassi già applicati.
LOG_CMPLT_CSN
Chiave esterna che fa riferimento alla tabella dei checkpoint. Questa colonna fa parte della chiave primaria della tabella delle transazioni.
GROUP_NAME
Il nome di un gruppo Replicat che utilizza questa tabella per i checkpoint. La stessa tabella può contenere più gruppi Replicat. Questa colonna fa parte della chiave primaria della tabella delle transazioni.

Informazioni sul checkpoint interno

Il comando INFO con l'opzione SHOWCH non solo visualizza le voci di checkpoint correnti, ma visualizza anche le informazioni sui metadati relative al record stesso. Queste informazioni non sono documentate e devono essere utilizzate dai processi di Oracle GoldenGate e dal personale di supporto durante la risoluzione di un caso di supporto.

I metadati sono contenuti nelle voci seguenti nell'output 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: Informazioni sul checkpoint

L'esempio seguente presenta le informazioni sul checkpoint restituite dal comando INFO EXTRACT con l'opzione SHOWCH. In questo caso, l'origine dati è un cluster di database Oracle RAC, pertanto nell'output sono incluse informazioni sui thread. Per visualizzare i checkpoint passati, specificare il numero di checkpoint che si desidera visualizzare dopo l'argomento 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: Informazioni sul checkpoint

Il comando di base mostra i checkpoint correnti. Per visualizzare un numero specifico di checkpoint precedenti, digitare il valore dopo l'argomento 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