Präzise Instanziierung für Oracle mit erstmaligem Ladeextrakt
Erfahren Sie, wie Sie den Extract für das erstmalige Laden mit dem Admin-Client hinzufügen.
Die Methode zum erstmaligen Laden eignet sich hervorragend für die Instanziierung in den folgenden Szenarien:
-
Zieldatenbank mit einer kleinen Gruppe von Tabellen aus der Teilmenge der Quelldatenbank wird geladen.
-
Laden von Daten in einer heterogenen Umgebung
Beim erstmaligen Laden von Extract werden Daten direkt aus den Quelltabellen gelesen und in eine EXTFILE geschrieben. Es stellt eine direkte Verbindung zur Datenbank her und ruft die Änderungen ab. Wie im folgenden Diagramm dargestellt, gibt es zwei Phasen bei der Durchführung einer Initial Load-Instanziierung. EXTINIT Extract ist der Extract für das anfängliche Laden, und EXTPRM ist der primäre Extract. Der EXTPRM-Prozess wurde für die kontinuierliche Replikation eingerichtet, jedoch nicht gestartet. Nachdem die Instanziierung für den Intial Load Extract abgeschlossen ist, wird der kontinuierliche Replikationsprozess ab dem Zeitpunkt gestartet, an dem der Intial Load initiiert wurde.

Um diesen Extract zu konfigurieren, benötigen Sie eine Kombination aus dateibasierten CDC-Prozessen (Initial Load and Change Data Capture). Der Instanziierungsprozess mit dem Extract für das erstmalige Laden umfasst die folgenden Aufgaben:
-
Initial Load Extract hinzufügen und konfigurieren: Dieser Extract wird verwendet, um den vorhandenen Inhalt einer oder mehrerer Tabellen aus der Quelle in die Zieldatenbank zu kopieren.
-
Change Data Capture konfigurieren: Damit werden Transaktionsänderungen aus der Quelle in die Zieldatenbank kopiert. Hinweis: Microservices-Architektur unterstützt das Laden von Daten mit einem Oracle GoldenGate-Direktladevorgang nicht.
Der dateibasierte anfängliche Ladeprozess ist die bevorzugte Methode für die Datenreplikation in MA. Die Schlüsselkomponenten sind:
-
Extract und Replicat für erstmaliges Laden: Repliziert den vorhandenen Inhalt der Datenbanktabellen.
-
Primärer Extract und Replicat: Repliziert Änderungsdaten aus den Datenbanktabellen.
-
Verteilungspfade: Überträgt Traildateien an das Zielsystem.
Bevor Sie beginnen, stellen Sie sicher, dass der Datenbankzugangsdatenalias (USERIDALIAS) erstellt wurde.
Sie können die Oracle GoldenGate-Weboberfläche, den Admin-Client oder cURL-Befehle verwenden, um diese Konfiguration einzurichten.
Schritt 1: Primären Extract erstellen
Eine genaue Instanziierung wird verwendet, um Datenbankressourcen korrekt von der Quelle in die Zieldatenbank zu replizieren. Der primäre Extract wird zuerst gestartet, um die Erfassung von Änderungsdaten frühzeitig zu initiieren. Die genaue Instanziierung basiert auf folgenden Annahmen:
Hinweis: Damit eine präzise Instanziierung funktioniert, muss die Instanziierungs-SCN nach der Registrierungs-SCN erfolgen.
-
Der primäre Extract wurde gestartet. Er ist für die Erfassung von Änderungsdaten verantwortlich und notiert, dass es sich um die Registrierungs-SCN handelt.
-
Die Datenbank wird überwacht. Die Datenbank wartet, bis die SCN der ältesten offenen Transaktion nach der Registrierungs-SCN erfolgt. Dies ist die Instanziierungs-SCN.
-
Die Instanziierungs-SCN wird beim Erstellen der Extract- und Replicat-Prozesse für das anfängliche Laden verwendet.
-
Die Instanziierungs-SCN wird verwendet, um das primäre Replicat zu erstellen, sobald die erstmalige Replikation des Ladevorgangs abgeschlossen ist.
-
Für MySQL gilt eine genaue Instanziierung nur für Quell- und Zieldatenbanken MySQL und wird mit dem Utility
Dumpder Shell MySQL implementiert. Weitere Informationen zum UtilityDumpfinden Sie unter MySQL Dump Utility.
Erstellen und starten Sie zunächst den primären Extract EXTPRIM aus der AdminClient, wie im folgenden Beispiel dargestellt:
Befehl:
OGG (not connected) 1> CONNECT https://oggdep.example.com:9100 as oggadmin password oggadmin !
Ausgabe:
Using default deployment 'OGGDEP'
Befehl:
OGG (https://oggdep.example.com:9100 OGGDEP) 2> DBLOGIN USERIDALIAS oggadmin
Ausgabe:
Successfully logged into database.
Befehl:
OGG (https://oggdep.example.com:9100 OGGDEP) 3> ADD EXTRACT extprim INTEGRATED TRANLOG BEGIN NOW
Ausgabe:
2018-03-16T13:37:07Z INFO OGG-08100 EXTRACT (Integrated) added.
Befehl:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 4> REGISTER EXTRACT extprim DATABASE
Ausgabe:
2018-03-16T13:37:30Z INFO OGG-02003 Extract EXTPRIM successfully registered with database at SCN 1608891.
Befehl:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 5> EDIT PARAMS extprim
Befehl:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 6> VIEW PARAMS extprim
Ausgabe:
--
-- E X T P R I M . p r m
-- Primary Extract Parameter File
--
Extract EXTPRIM
UseridAlias oggadmin
ExtTrail AA
Table user01.*;
Befehl:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 7> ADD EXTTRAIL aa EXTRACT extprim
Ausgabe:
2018-03-16T13:37:55Z INFO OGG-08100 EXTTRAIL added.
Befehl:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 8> START EXTRACT extprim
Ausgabe:
2018-03-16T13:38:02Z INFO OGG-00975 EXTRACT EXTPRIM starting
2018-03-16T13:38:02Z INFO OGG-15426 EXTRACT EXTPRIM started
In diesem Beispiel ist oggadmin der Alias für die Datenbankzugangsdaten.
Rufen Sie nach dem Erstellen des primären Extract die SCN-Registrierungsnummer ab. Führen Sie den Befehl REGISTER EXTRACT in der Datei AdminClient aus. Im folgenden Beispiel wird der SCN-Wert 1608891 abgerufen.
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 4> REGISTER EXTRACT extprim DATABASE
Ausgabe:
2018-03-16T13:37:30Z INFO OGG-02003 Extract EXTPRIM successfully registered with database at SCN 1608891.
Schritt 2: Instanziierungs-SCN bestimmen
Der Administrationsservice in der Oracle GoldenGate-Microservices-Architektur bietet einen Endpunkt zum Abrufen von Informationen zu offenen Datenbanktransaktionen. Diese Informationen können verwendet werden, um die SCN zu identifizieren, die beim Instanziieren des Extract für das erstmalige Laden verwendet werden soll.
Im folgenden Beispiel ist die Instanziierungs-SCN 1609723, die älteste SCN aller offenen Transaktionen, die auch über die Registrierungs-SCN von 1608891 hinausgeht, die im vorherigen Schritt identifiziert wurde.
-- Query for active transactions
--
SELECT T.START_SCN, T.STATUS TSTATUS, T.START_DATE,
S.SID, S.SERIAL#, S.INST_ID, S.USERNAME, S.OSUSER, S.STATUS SSTATUS, S.LOGON_TIME
FROM gv$transaction T
INNER JOIN gv$session S
ON s.saddr = t.ses_addr
UNION ALL
--
-- Query for current status
--
SELECT CURRENT_SCN, 'CURRENT', CURRENT_DATE,
NULL, NULL, NULL, 'SYS', NULL, NULL, NULL
from v$database
ORDER BY 1;
Die Ergebnisse dieser Abfrage können zur Bestimmung der Instanziierungs-SCN verwendet werden. Die Ergebnisse für diese spezifische Abfrage lauten:
1538916 ACTIVE 2018-03-16 18:10:31.0 3865 9176 1 OGGADMIN oracle INACTIVE 2018-03-16 18:10:26.0 1540555 CURRENT 2018-03-16 18:21:50.0 SYS
Die SCN zur Instanziierung des Extract für den anfänglichen Ladevorgang wird mit SQL*Plus abgerufen. Im folgenden Beispiel verwendet die SQL-Abfrage den Instanziierungs-SCN-Wert als 1624963. Dies ist die älteste SCN aller offenen Transaktionen, die auch über die Registrierungs-SCN von 1608891 hinausgehen.
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 14> SHELL ECHO 'SELECT MIN(START_SCN) FROM gv$transaction;' | ${ORACLE_HOME}/bin/sqlplus -S / as sysdba
MIN(START_SCN)
--------------
1624963
Wenn keine offenen Transaktionen vorhanden sind, gibt diese SQL-Abfrage ein leeres Ergebnis zurück. Eine detaillierte Abfrage, die Situationen berücksichtigt, in denen keine offenen Transaktionen vorhanden sind, lautet:
SELECT MIN(SCN) as INSTANTIATION_SCN
FROM (SELECT MIN(START_SCN) as SCN
FROM gv$transaction
UNION ALL
SELECT CURRENT_SCN
FROM gv$database);
Schritt 3: Erstmaliges Laden von Replicat erstellen und starten
Bevor Sie mit diesem Schritt beginnen, stellen Sie sicher, dass die Checkpoint-Tabelle oggadmin.checkpoints bereits im Zielsystem vorhanden ist. Das anfängliche Laden von Replicat ist für das Auffüllen der Zieldatenbank verantwortlich. Führen Sie den folgenden Befehl auf der AdminClient aus, um das anfängliche Laden von Replicat (REPINIT) zu erstellen und zu starten:
Befehl:
OGG (not connected) 1> CONNECT https://oggdep.example.com:9100 as oggadmin password oggadmin !
Ausgabe:
Using default deployment 'OGGDEP'
Befehl:
OGG (https://oggdep.example.com:9100 OGGDEP) 2> DBLOGIN USERIDALIAS oggadmin
Ausgabe:
Successfully logged into database.
Befehl:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 3> ADD CHECKPOINTTABLE oggadmin.checkpoints
Ausgabe:
ADD "oggadmin.checkpoints" succeeded.
Befehl:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 4> ADD REPLICAT repinit EXTTRAIL dd CHECKPOINTTABLE oggadmin.checkpoints
Ausgabe:
2018-03-16T13:56:41Z INFO OGG-08100 REPLICAT added.
Befehl:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 5> EDIT PARAMS repinit
Befehl:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 6> VIEW PARAMS repinit
Ausgabe:
--
-- R E P I N I T . p r m
-- File-Based Initial Load Replicat Parameter File
--
Replicat REPINIT
UseridAlias oggadmin
Map user01.*
Target user01.*;
Befehl:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 7> START REPLICAT repinit
Ausgabe:
2018-03-16T13:58:21Z INFO OGG-00975 REPLICAT REPINIT starting
2018-03-16T13:58:21Z INFO OGG-15426 REPLICAT REPINIT started
Schritt 4: Initial Load Extract erstellen und starten
Mit der Instanziierungs-SCN, die Sie abgerufen haben (1624963), wird der Extract für das erstmalige Laden erstellt, um Inhalte der Datenbanktabellen in den Trail zu schreiben. Erstellen und starten Sie den anfänglichen Ladeextrakt, EXTINIT.
Ab Oracle GoldenGate 26ai werden Extract-Tabellenansichten beim erstmaligen Laden nicht aufgelöst, wenn Tabellen mit einem TABLE-Parameter aufgelöst werden, der Platzhalter enthält. Wenn Ansichten in den Extract für das erstmalige Laden eingeschlossen werden müssen, müssen sie in einem separaten TABLE-Parameter ohne Platzhalter angegeben werden.
Beispiel: Wenn die Tabelle hr.employees und die Ansicht hr.employees_view vorhanden sind. Wenn Sie beim erstmaligen Laden von Extract Folgendes in der Parameterdatei des anfänglichen Ladevorgangs angeben:
TABLE hr.*;
Nur die Daten aus Tabelle hr.employees werden in den Extract für das erstmalige Laden eingeschlossen.
Wenn Sie die hr.employees_view beim erstmaligen Laden einschließen müssen, fügen Sie der Extract-Parameterdatei für das erstmalige Laden den folgenden Parameter hinzu:
TABLE SCOTT.TAB1_VIEW;
Befehl:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 15> ADD EXTRACT extinit SOURCEISTABLE
Ausgabe:
2018-03-16T14:08:38Z INFO OGG-08100 EXTRACT added.
Befehl:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 16> EDIT PARAMS extinit
Befehl:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 17> VIEW PARAMS extinit
Ausgabe:
--
-- E X T I N I T . p r m
-- File-Based Initial Load Extract Parameter File
--
Extract EXTINIT
UseridAlias oggadmin
ExtFile CC Megabytes 2000 Purge
Table user01.*, SQLPredicate "As Of SCN 1624963";
Befehl:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 18> START EXTRACT extinit
Ausgabe:
2018-03-16T14:13:42Z INFO OGG-00975 EXTRACT EXTINIT starting
2018-03-16T14:13:42Z INFO OGG-15426 EXTRACT EXTINIT started
Schritt 5: Verteilungspfade erstellen
Erstellen Sie zwei Verteilungspfade (AABB und CCDD), um die lokalen Trails vom Admin-Client auf den Remotehost zu kopieren:
Befehl:
OGG (https://oggdep.example.com:9100 oggdep) 15> ADD DISTPATH aabb SOURCE TRAIL://oggdep.example.com:9102/services/v2/sources?trail=AA target wss://dallas.oggdevops.us:9103/services/v2/targets?trail=BB
Ausgabe:
2018-03-16T17:28:27Z INFO OGG-08511 The path 'AABB' has been added.
Befehl:
OGG (https://oggdep.oggdevops.us:9100 oggdep) 16> ADD DISTPATH ccdd SOURCE TRAIL://oggdep.example.com:9102/services/v2/sources?trail=CC target wss://dallas.oggdevops.us:9103/services/v2/targets?trail=DD
Ausgabe:
2018-03-16T17:28:35Z INFO OGG-08511 The path 'CCDD' has been added.
Befehl:
OGG (https://oggdep.example:9100 oggdep) 17> START DISTPATH aabb
Ausgabe:
2018-03-16T17:28:42Z INFO OGG-08513 The path 'AABB' has been started.
Befehl:
OGG (https://oggdep.example.com:9100 oggdep) 18> START DISTPATH ccdd
Ausgabe:
2018-03-16T17:28:47Z INFO OGG-08513 The path 'CCDD' has been started.
Wenn Sie das Protokoll ogg anstelle von wss verwenden, müssen Sie die Option TARGETTYPE verwenden. Die Syntax in diesem Fall lautet:
ADD DISTPATH path-name SOURCE source-uri TARGET target-uri [ TARGETTYPE ( MANAGER | COLLECTOR | RECVSRVR ) ]
TARGETTYPE gibt den Zieltyp an, falls der Verteilungspfad das Legacy-Protokoll verwendet. Dieses Argument ist nur gültig, wenn das Ziel-URI-Schema ogg ist.
Schritt 6: Primäres Replicat erstellen
Nachdem das erstmalige Laden von Extract und Replicat abgeschlossen ist, können sie gelöscht werden. Anschließend wird der primäre Replicat-Prozess auf dem Remotehost zum Anwenden von Änderungsdaten auf die Zieldatenbank erstellt.
Verwenden Sie AdminClient, um den primären Replicat-Prozess zu erstellen. Hinweis: Das primäre Replicat wird bei der Instanziierungs-SCN gestartet.
Befehl:
OGG (https://oggdep.example.com:9100 oggdep as oggadmin) 12> ADD REPLICAT repprim EXTTRAIL bb CHECKPOINTTABLE oggadmin.checkpoints
Ausgabe:
2018-03-16T17:37:46Z INFO OGG-08100 REPLICAT added.
Befehl: PARAMS BEARBEITEN
OGG (https://oggdep.example.com:9100 oggdep as oggadmin) 13> EDIT PARAMS repprim
Befehl:
OGG (https://oggdep.example.com:9100 oggdep as oggadmin) 14> VIEW PARAMS repprim
Ausgabe:
--
-- R E P P R I M . p r m
-- Replicat Parameter File
--
Replicat REPPRIM
USERIDALIAS oggadmin
Map user01.*
Target user01.*;
Befehl:
OGG (https://oggdep.example.com:9100 oggdep as oggadmin) 15> START REPLICAT repprim ATCSN 1624963
Ausgabe:
2018-03-16T17:38:10Z INFO OGG-00975 REPLICAT REPPRIM starting
2018-03-16T17:38:10Z INFO OGG-15426 REPLICAT REPPRIM started