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 |
|---|---|
|
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. |
|
Die Version des Checkpoint-Tabellenformats. Damit können zukünftige Verbesserungen als Versionsnummern der Tabelle identifiziert werden. |
|
Der Zeitstempel des Commits der Quelltransaktion. |
|
Die Folgenummer des Eingabetrails, den Replicat zum Zeitpunkt des Checkpoints gelesen hat. |
|
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. |
|
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. |
|
Datum und Uhrzeit der letzten Aktualisierung der Checkpoint-Tabelle. |
|
Datum und Uhrzeit der Erstellung der Checkpoint-Tabelle. |
|
Das aktuelle Home-Verzeichnis oder der aktuelle Ordner von Oracle GoldenGate. |
|
Speichert die Transaktionen zwischen den bereits angewendeten hohen und niedrigen Wasserzeichen. |
|
Speichert das niedrige Wasserzeichen oder die untere Grenze der CSNs. Jede Transaktion mit einer niedrigeren CSN als dieser Wert wurde bereits verarbeitet. |
|
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. |
|
Nicht verwendet. Aus Gründen der Abwärtskompatibilität beibehalten. |
|
Eine eindeutige Kennung, die zusammen mit 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 |
|---|---|
|
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. |
|
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. |
|
Speichert den Überlauf von Transaktionen zwischen den bereits angewendeten hohen und niedrigen Wasserzeichen. |
|
Der Fremdschlüssel, der die Checkpoint-Tabelle referenziert. Diese Spalte ist Teil des Primärschlüssels der Transaktionstabelle. |
|
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