Checkpoint-Tabellen - Weitere Details

Wenn Datenbank-Checkpoints verwendet werden, erstellt Oracle GoldenGate bei Ausführung des Befehls ADD CHECKPOINTTABLE eine Checkpoint-Tabelle mit einem benutzerdefinierten Namen in der Datenbank, oder ein Benutzer kann die Tabelle mit dem Befehl chkpt_db_create.sql script erstellen (wobei db eine Abkürzung des vom Skript unterstützten Datenbanktyps ist).

Es gibt zwei Tabellen: die Haupt-Checkpoint-Tabelle und eine Auxiliary Checkpoint-Tabelle, die automatisch erstellt wird. Die Auxiliary-Tabelle, die als Transaktionstabelle bezeichnet wird, trägt den Namen der primären Checkpoint-Tabelle mit dem Anhang _lox. Jedes Replicat oder jeder Thread eines koordinierten Replicats verwendet eine Zeile in der Checkpoint-Tabelle, um seine Fortschrittsinformationen zu speichern.

Zur Checkpoint-Zeit gibt es in der Regel einige Transaktionen (unter den gesamten n Transaktionen), die angewendet wurden, und der Rest ist noch in Bearbeitung. Beispiel: Wenn Replicat eine Gruppe von n Transaktionen verarbeitet, die von CSN1 bis CSN3 reichen. CSN1 ist das hohe Wasserzeichen und CSN3 das niedrige Wasserzeichen. Jede Transaktion mit einer CSN, die höher als das hohe Wasserzeichen ist, wurde nicht verarbeitet, und jede Transaktion mit einer CSN, die niedriger als das niedrige Wasserzeichen ist, wurde bereits verarbeitet. Abgeschlossene Transaktionen werden in der Spalte LOG_CMPLT_XID der Checkpoint-Tabelle gespeichert. Alle Überläufe dieser Transaktionen werden in der Transaktionstabelle (Hilfs-Checkpoint-Tabelle) in der Spalte LOG_CMPLT_XID dieser Tabelle gespeichert.

Derzeit wendet Replicat (oder jeder Replicat-Thread eines koordinierten Replicats) Transaktionen seriell (nicht parallel) an. Daher ist das hohe Wasserzeichen (der Wert LOG_CSN in der Tabelle) immer mit dem niedrigen Wasserzeichen (der Wert LOG_CMPLT_CSN in der Tabelle) identisch, und in der Spalte LOG_CMPLT_XID ist in der Regel nur eine Transaktions-ID vorhanden. Die einzige Ausnahme ist, wenn mehrere Transaktionen dieselbe CSN verwenden.

Ändern Sie nicht die Namen oder Attribute der Spalten in diesen Tabellen. Sie können die Tabellenspeicherattribute nach Bedarf ändern.

Spalte Beschreibung
LOG_BSN
Die LOG_BSN enthält Informationen, die erforderlich sind, um Extract rechtzeitig für die erneute Verarbeitung von Transaktionen festzulegen. Eine Filterung nach Replicat ist erforderlich, da Extract wahrscheinlich eine kleine Datenmenge neu generiert, die bereits von Replicat angewendet wurde.
VERSION
Die Version des Checkpoint-Tabellenformats. Damit können zukünftige Verbesserungen als Versionsnummern der Tabelle identifiziert werden.
AUDIT_TS
Der Zeitstempel des Commits der Quelltransaktion.
SEQNO
Die Folgenummer des Eingabetrails, den Replicat zum Zeitpunkt des Checkpoints gelesen hat.
RBA
Die relative Byteadresse, die Replicat in dem mit SEQNO identifizierten Trail erreicht hat. RBA + SEQNO stellen eine absolute Position im Trail bereit, die den Fortschritt von Replicat zum Zeitpunkt des Checkpoints angibt.
GROUP_NAME (primary key)
Der Name einer Replicat-Gruppe, die diese Tabelle für Checkpoints verwendet. Es können mehrere Replicat-Gruppen mit derselben Tabelle vorhanden sein. Diese Spalte ist Teil des Primärschlüssels.
LAST_UPDATE_TS
Datum und Uhrzeit der letzten Aktualisierung der Checkpoint-Tabelle.
CREATE_TS
Datum und Uhrzeit der Erstellung der Checkpoint-Tabelle.
CURRENT_DIR
Das aktuelle Home-Verzeichnis oder der aktuelle Ordner von Oracle GoldenGate.
LOG_CMPLT_XIDS
Speichert die Transaktionen zwischen den bereits angewendeten hohen und niedrigen Wasserzeichen.
LOG_CMPLT_CSN
Speichert das niedrige Wasserzeichen oder die untere Grenze der CSNs. Jede Transaktion mit einer niedrigeren CSN als dieser Wert wurde bereits verarbeitet.
LOG_CSN
Speichert das hohe Wasserzeichen oder die obere Grenze der CSNs. Jede Transaktion mit einer CSN, die größer als dieser Wert ist, wurde nicht verarbeitet.
LOG_XID
Nicht verwendet. Aus Gründen der Abwärtskompatibilität beibehalten.
GROUP_KEY (primary key)
Eine eindeutige Kennung, die zusammen mit
GROUPNAME
einen Checkpoint eindeutig identifiziert, unabhängig davon, wie viele Replicat-Gruppen in dieselbe Tabelle schreiben. Diese Spalte ist Teil des Primärschlüssels.
Spalte Beschreibung
GROUP_KEY
Eine eindeutige ID, die zusammen mit GROUPNAME einen Checkpoint eindeutig identifiziert, unabhängig davon, wie viele Replicat-Gruppen in dieselbe Tabelle schreiben. Diese Spalte ist Teil des Primärschlüssels der Transaktionstabelle.
LOG_CMPLT_XIDS_SEQ
Erstellt eindeutige Zeilen, falls es so viele Überlauftransaktionen gibt, dass mehrere Zeilen erforderlich sind, um sie alle zu speichern. Diese Spalte ist Teil des Primärschlüssels der Transaktionstabelle.
LOG_CMPLT_XIDS
Speichert den Überlauf von Transaktionen zwischen den bereits angewendeten hohen und niedrigen Wasserzeichen.
LOG_CMPLT_CSN
Der Fremdschlüssel, der die Checkpoint-Tabelle referenziert. Diese Spalte ist Teil des Primärschlüssels der Transaktionstabelle.
GROUP_NAME
Der Name einer Replicat-Gruppe, die diese Tabelle für Checkpoints verwendet. Es können mehrere Replicat-Gruppen mit derselben Tabelle vorhanden sein. Diese Spalte ist Teil des Primärschlüssels der Transaktionstabelle.

Interne Checkpoint-Informationen

Der Befehl INFO mit der Option SHOWCH zeigt nicht nur aktuelle Checkpoint-Einträge an, sondern auch Metadateninformationen zum Datensatz selbst. Diese Informationen sind nicht dokumentiert und werden von den Oracle GoldenGate-Prozessen und vom Supportpersonal bei der Lösung eines Supportfalls verwendet.

Die Metadaten sind in den folgenden Einträgen in der SHOWCH-Ausgabe enthalten.

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

Befehl INFO EXTRACT SHOWCH: Checkpoint-Informationen

Im folgenden Beispiel werden die Checkpoint-Informationen angezeigt, die vom Befehl INFO EXTRACT mit der Option SHOWCH zurückgegeben werden. In diesem Fall ist die Datenquelle ein Oracle RAC-Datenbankcluster, sodass Threadinformationen in der Ausgabe enthalten sind. Sie können vergangene Checkpoints anzeigen, indem Sie die Anzahl der Checkpoints angeben, die Sie nach dem Argument SHOWCH anzeigen möchten.

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: Checkpoint-Informationen

Der Basisbefehl zeigt aktuelle Checkpoints an. Um eine bestimmte Anzahl vorheriger Checkpoints anzuzeigen, geben Sie den Wert nach dem Argument SHOWCH ein.

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