Präzise Instanziierung für PostgreSQL mit erstmaligem Ladeextrakt
Die Datensynchronisierung von einer Quelldatenbank PostgreSQL zu einem Oracle GoldenGate-Ziel kann mit der optionalen Methode zur präzisen Instanziierung durchgeführt werden. Diese Methode wurde mit Oracle GoldenGate 21c (21.8.0) eingeführt.
Eine präzise Instanziierung hat den Vorteil, dass keine Kollisionsbehandlung im Ziel-Replicat erforderlich ist. Dies ist wichtig für Ziele, die keine Kollisionsbehandlung unterstützen, wie Flat Files. Bei dieser Methode wird ein Datenbank-Snapshot verwendet, um die Ausgabe des anfänglichen Ladeextrakts mit der Startposition des Change Data Capture-Extrakts zu synchronisieren. Dieser Snapshot wird vom Extract beim erstmaligen Laden verwaltet. Daher ist es nicht möglich, dass mehrere Extracts beim erstmaligen Laden denselben Snapshot verwenden. Daher wird diese Methode nicht unterstützt, wenn mehrere anfängliche Ladeextrakte zur Parallelisierung der Workload verwendet werden.
Im folgenden Beispiel wird der Admin-Client in der Microservices-Architektur verwendet. Es wird davon ausgegangen, dass Sie mit Oracle GoldenGate vertraut sind und die Quell- und Zieldatenbank korrekt eingerichtet haben, mit allen erforderlichen Voraussetzungen. Für diese Schritte ist mindestens Oracle GoldenGate 21c (21.8.0) erforderlich.
Führen Sie die folgenden Schritte aus, um End-to-End-Prozesse zum erstmaligen Laden und Synchronisieren mit der präzisen Instanziierungsmethode einzurichten:
-
Registrieren Sie einen Change Data Capture-(CDC-)Extract bei der Quelldatenbank PostgreSQL.
DBLOGIN USERIDALIAS src_alias REGISTER EXTRACT extecdcIn diesem Beispiel ist
extecdcder Extract-Name. Verwenden Sie für die Microservices-ArchitekturDBLOGIN USERIDALIASfür das Setup der Datenbankverbindung. -
Erstmaligen Ladeextrakt erstellen
ADD EXTRACT extinit, SOURCEISTABLE EDIT PARAMS extinitDie Extract-Parameterdatei für das anfängliche Laden muss den Parameter
INITIALLOADOPTIONS USESNAPSHOTenthalten. Beispiel:EXTRACT extinit INITIALLOADOPTIONS USESNAPSHOT SOURCEDB USERIDALIAS src_alias EXTFILE west/ei, MEGABYTES 500, PURGE TABLE public.*;Weitere Informationen zur Verwendung dieses Parameters mit der Option
USESNAPSHOTfinden Sie unterINITIALLOADOPTIONS. -
Starten Sie den Extract zum erstmaligen Laden.
START EXTRACT extinit -
Wenn die Extraktion zum erstmaligen Laden abgeschlossen und gestoppt wurde, prüfen Sie die Berichtsdatei, um die Positionierungs-LSN zu bestimmen, die vom CDC-Extrakt verwendet werden soll.
Beispiel: In der folgenden Ausgabe lautet die Positionierungs-LSN, die vom CDC-Extrakt verwendet werden soll, "0/173F770".
INFO OGG-100001 A consistent point is established in database 'tpcc' using replication slot ogg_initx_1234 at LSN 0/173F770 and snapshot name '00000003-00000026-1'.INFO OGG-100002 Create or position the CDC extract to LSN 0/173F770. Example: ADD EXTRACT <cdc-extract> TRANLOG LSN 0/173F770 or ALTER EXTRACT <cdc-extract> LSN 0/173F770. -
Erstellen und starten Sie ein Replicat zum erstmaligen Laden, das den Trail aus dem Extract zum erstmaligen Laden liest.
DBLOGIN USERIDALIAS tgt_aliasADD CHECKTPOINTTABLE ggs.checkpointADD REPLICAT repinit, EXTTRAIL west/ei, CHECKPOINTTABLE ggs.ggcheckpointSTART REPLICAT repinitIm Folgenden finden Sie ein Beispiel für die Replicat-Parameterdatei zum erstmaligen Laden:
REPLICAT repinit TARGETDB USERIDALIAS tgt_alias BATCHSQL MAP public.*, TARGET public.*; -
Fügen Sie den CDC-Extrakt (
extecdc) mit dem konsistenten LSN-Wert hinzu, auf den in der Extract-Berichtsdatei für das erstmalige Laden verwiesen wird, und starten Sie ihn.ADD EXTRACT extecdc, TRANLOG, LSN 0/173F770ADD EXTTRAIL ea, EXTRACT extecdcSTART EXTRACT extecdcIm Folgenden finden Sie ein Beispiel für eine CDC Extract-Parameterdatei:
EXTRACT extecdc SOURCEDB USERIDALIAS src_alias EXTTRAIL west/ea TABLE public.*; -
Wenn das anfängliche Laden von Replicat alle Datensätze zum erstmaligen Laden verarbeitet hat, fügen Sie ein CDC-Replicat hinzu, das den Trail aus dem CDC-Extrakt liest, und starten Sie es.
ADD REPLICAT repecdc, EXTTRAIL west/ea, CHECKPOINTTABLE ggs.ggcheckpointSTART REPLICAT repecdc -
Überwachen Sie die Verzögerung sowohl im CDC-Extrakt als auch im CDC-Replicat, und wenn beide nahe null Sekunden liegen, sollte der Datenstream von der Quell- zur Zieldatenbank nahe an Echtzeit liegen.