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:

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.

Beschreibung von gwuad_dt_026_file-replicat.png folgt

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:

Der dateibasierte anfängliche Ladeprozess ist die bevorzugte Methode für die Datenreplikation in MA. Die Schlüsselkomponenten sind:

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.

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