Aufgabe 2: Oracle GoldenGate-Umgebung konfigurieren

Gehen Sie folgendermaßen vor, um diese Aufgabe abzuschließen:

Schritt 2.1: Auf das Deployment zugreifen

So greifen Sie auf das Deployment zu:

Schritt 2.2: Datenbankzugangsdaten erstellen

Verwenden Sie die Oracle GoldenGate-Microservices-UI, um die Datenbankzugangsdaten mit den oben angegebenen TNS-Aliasnamen zu erstellen. Fügen Sie als Benutzer oggadmin die Datenbankzugangsdaten hinzu:

  1. Melden Sie sich beim Oracle GoldenGate-Administrationsservice an: https://localhost:<localPort>/services/<deployment_name>/adminsrvr/v2/content/.

  2. Wählen Sie im linken Navigationsmenü DB-Verbindungen aus.

  3. Wählen Sie auf der Seite "DB-Verbindungen" die Option DB-Verbindung hinzufügen (Plussymbol).

  4. Fügen Sie die erforderlichen Informationen für jede Quell- und Ziel-CDB und -PDB hinzu:

    Teilsektor Container Domain Alias Benutzer-ID
    Region 1 CDB GoldenGate Reg1_CDB c##ggadmin@
    Region 1 PDB GoldenGate Reg1_PDB ggadmin@
    Region 2 CDB GoldenGate Reg2_CDB c##ggadmin@
    Region 2 PDB GoldenGate Reg2_PDB ggadmin@

Schritt 2.3: Autostart-Profile erstellen

Erstellen Sie ein Profil, das die Extract- und Replicat-Prozesse beim Start von Oracle GoldenGate Administration Server automatisch startet, und starten Sie es neu, wenn Extract- oder Replicat-Prozesse abgebrochen werden. In GoldenGate Microservices verwalten Profile den automatischen Start und Neustart.

Erstellen Sie mit der Oracle GoldenGate Administration Server-UI ein Profil, das jedem Oracle GoldenGate-Prozess zugewiesen werden soll:

  1. Melden Sie sich bei GoldenGate WebUI für das Deployment der Quelle GoldenGate an.

  2. Wählen Sie im Navigationsmenü die Option Verwaltete Prozessprofile aus.

  3. Wählen Sie auf der Seite "Verwaltete Prozesseinstellungen" die Option Profil hinzufügen aus.

  4. Geben Sie die Details wie folgt ein:

    • Profilname: Start_Default

    • Beschreibung: Standardprofil für automatischen Start/Neustart

    • Standardprofil: Ja

    • Automatischer Start: Ja

    • Optionen für automatischen Start

      • Startverzögerung: 1 Min.

      • Automatischer Neustart: Ja

    • Optionen für automatischen Neustart

      • Max. Wiederholungsversuche: 5

      • Wiederholungsverzögerung: 30 sec

      • Wiederholungsfenster: 30 min

      • Neustart nur bei Fehler: Ja

      • Bei Erschöpfung der Wiederholungsversuche Aufgabe deaktivieren: Ja

  5. Klicken Sie auf Weiterleiten

  6. Wiederholen Sie diese Schritte im Ziel-Deployment GoldenGate.

Schritt 2.4: Oracle GoldenGate-Prozesse konfigurieren

Wenn Sie Extract-, Distributionspfade- und Replicat-Prozesse mit Oracle GoldenGate Microservices Architecture erstellen, werden alle Dateien, die zwischen den GGHub-Knoten gemeinsam verwendet werden müssen, bereits mit den Deployment-Dateien gemeinsam verwendet, die in einem freigegebenen Dateisystem gespeichert sind.

Im Folgenden werden die wesentlichen Konfigurationsdetails aufgeführt, die für die Ausführung von Oracle GoldenGate Microservices auf GGhub für Extract-, Distributionspfade- und Replicat-Prozesse empfohlen werden.

Führen Sie die folgenden Unterschritte aus, um diesen Schritt abzuschließen:

Schritt 2.5.1: Konfiguration extrahieren

Wenn Sie einen Extract mit der Oracle GoldenGate Administration Service-Schnittstelle erstellen, lassen Sie den Parameter "Trailunterverzeichnis" leer, damit die Traildateien automatisch in den Deployment-Verzeichnissen erstellt werden, die im freigegebenen Dateisystem gespeichert sind. Der Standardspeicherort für Traildateien ist das Verzeichnis /<deployment directory>/var/lib/data.

Hinweis: Um Daten aus einer mehrmandantenfähigen Datenbank zu erfassen, müssen Sie einen Extract verwenden, der auf Root-Ebene mit einem c##-Account konfiguriert wurde. Um Daten in einer mehrmandantenfähigen Datenbank anzuwenden, ist ein separates Replicat für jede PDB erforderlich, da sich ein Replicat auf PDB-Ebene anmeldet und keinen Zugriff auf Objekte außerhalb dieser PDB hat.

Bei GoldenGate Extract-Prozessen, die Data Guard-Konfigurationen verwenden, die den Redo-Transportmodus "Maximale Performance" oder "Maximale Verfügbarkeit" verwenden, muss der Parameterdatei des Extract-Prozesses auf dem primären System der folgende Parameter hinzugefügt werden, um zu vermeiden, dass Transaktionen verloren gehen und logische Dateninkonsistenzen entstehen:

TRANLOGOPTIONS HANDLEDLFAILOVER

Dieser Parameter verhindert, dass Extract Transaktionsdaten aus Redo extrahiert, die noch nicht auf die Data Guard-Standbydatenbank angewendet wurden. Dies ist entscheidend, um zu verhindern, dass Oracle GoldenGate Daten in eine Zieldatenbank repliziert, die nicht in der Quell-Standbydatenbank vorhanden ist.

Wenn dieser Parameter nicht angegeben ist, können nach einem Datenverlust-Failover der Quelldatenbank Daten in der Zieldatenbank vorhanden sein, die nicht in der Quelldatenbank vorhanden sind, was zu logischen Dateninkonsistenzen führt.

Standardmäßig wird nach 60 Sekunden eine Warnmeldung in die Extract-Berichtsdatei geschrieben, wenn der Extract blockiert wird, weil die SCN-Informationen der Standbydatenbank nicht abgefragt werden können. Beispiel:

WARNING OGG-02721  Extract has been waiting for the standby database for 60 seconds.

Die Zeitspanne, bis die Warnmeldung in die Berichtsdatei extrahiert wird, kann mit dem Extract-Parameter "TRANLOGOPTIONS HANDLEDLFAILOVER STANDBY_WARNING" angepasst werden.

Wenn der Extract die SCN-Informationen der angewendeten Standbydatenbank nach 30 Minuten noch nicht abfragen kann (Standard), wird der Extract-Prozess abgebrochen, und die folgende Meldung wird in der Extract-Berichtsdatei protokolliert:

ERROR   OGG-02722  Extract abended waiting for 1,800 seconds for the
    standby database to be accessible or caught up with the primary database.

Wenn die Standbydatenbank verfügbar ist, bevor der standardmäßige 30-Timeout abläuft, fährt Extract mit dem Mining von Daten aus der Quelldatenbank fort und meldet die folgende Meldung an die Berichtsdatei:

INFO    OGG-02723  Extract resumed from stalled state and started processing LCRs.

Der Timeoutwert von 30 Minuten kann mit dem Extract-Parameter "TRANLOGOPTIONS HANDLEDLFAILOVER STANDBY_ABEND " angepasst werden, wobei der Wert der Anzahl der Sekunden entspricht, in denen die Standbydatenbank vor dem Abbrechen nicht verfügbar ist.

Wenn die Standbydatenbank länger nicht verfügbar ist, z.B. während eines geplanten Wartungsausfalls, und Sie möchten, dass Extract weiterhin Daten aus der Primärdatenbank extrahiert, entfernen Sie den Parameter "TRANLOGOPTIONS HANDLEDLFAILOVER" aus der Extract-Parameterdatei, und starten Sie Extract neu (siehe Beispiel unten in den Abbildungen 4 bis 6). Stellen Sie den Parameter ein, nachdem die Standbydatenbank verfügbar ist.

Hinweis: Wenn das Extrahieren aus einer Primärdatenbank fortgesetzt wird, während die Standbydatenbank nicht verfügbar ist, kann es zu einem Datenverlust-Failover kommen, nachdem die Standbydatenbank verfügbar ist. Nicht alle primären Redo-Daten wurden vor einem Failover angewendet. Die GoldenGate-Zieldatenbank enthält Daten, die nicht in der Quelldatenbank vorhanden sind.

Wenn dem Extract-Prozess ein Profil für den automatischen Neustart zugewiesen wurde, wird der Extract-Prozess nach einem Übergang der Data Guard-Rolle automatisch neu gestartet. Extract erstellt weiterhin Redo-Daten aus der neuen Primärdatenbank. Dabei wird der aktuelle Status der neuen Standbydatenbank ignoriert, bis ein standardmäßiger Timeoutzeitraum von 5 Minuten abläuft. Wenn die Standbydatenbank nicht verfügbar ist, wird Extract nach dieser Zeit mit den folgenden Fehlern beendet:

INFO    OGG-25053  Timeout waiting for 300 seconds for standby database
 reinstatement. Now enforcing HANDLEDLFAILOVER.
ERROR   OGG-06219  Unable to extract data from the Logmining server OGG$CAP_XXXXX.
ERROR   OGG-02078  Extract encountered a fatal error in a processing thread and is
 abending.

Extract wird basierend auf dem Profil für den automatischen Neustart von GoldenGate Microservices und aufgrund des HANDLEDLFAILOVER-Timeouts automatisch neu gestartet, bis die Anzahl der Wiederholungen erreicht ist oder die neue Standbydatenbank verfügbar wird.

Während des Timeoutzeitraums nach einem Datenbankrollenübergang wird der Parameter HANDLEDLFAILOVER automatisch unterbrochen. Daher werden Daten in die Oracle GoldenGate-Replikatdatenbank repliziert, ohne dass die Quell-Standbydatenbank nicht auf dem neuesten Stand gehalten wird. Der Timeoutzeitraum für das Hochfahren der Standbydatenbank vor dem Abbruch von Extract kann mit dem Extract-Parameter TRANLOGOPTIONS DLFAILOVER_TIMEOUT angepasst werden.

Es wird empfohlen, DLFAILOVER_TIMEOUT standardmäßig 5 Minuten zu belassen, damit die alte Primärdatenbank in eine Standbydatenbank konvertiert werden kann. Wenn die neue Standbydatenbank für einen längeren Zeitraum nicht verfügbar ist oder vollständig weg ist, müssen Sie den Parameter HANDLEDLFAILOVER aus der Extract-Parameterdatei entfernen, damit Extract gestartet wird und weiter ausgeführt wird. Nachdem Sie den Parameter entfernt haben, wartet Extract nicht mehr, bis Redo auf die Standbydatenbank angewendet wurde, bevor die Daten extrahiert werden.

Während der Zeit, die es dauert, bis die Standbydatenbank wieder online ist und alle Redo-Daten aus der Primärdatenbank einspielt, gibt es eine Datendivergenz zwischen der Standbydatenbank und der Oracle GoldenGate-Replikatdatenbank. Dies wird aufgelöst, sobald die Standbydatenbank auf dem neuesten Stand ist. Fügen Sie dann den Parameter HANDLEDLFAILOVER wieder in die Parameterdatei des integrierten Extract-Prozesses ein, und stoppen Sie den Extract, und starten Sie ihn neu.

Wenn Oracle Data Guard Fast-Start Failover deaktiviert ist, sodass der Broker bei Verlust der Primärdatenbank automatisch ein Failover zu einer Standbydatenbank durchführen kann, müssen Sie einen zusätzlichen integrierten Extract-Parameter angeben, der unten angezeigt wird.

TRANLOGOPTIONS FAILOVERTARGETDESTID n

Dieser Parameter gibt an, welche Standbydatenbank der Oracle GoldenGate Extract-Prozess zurückbleiben muss, damit keine Redo-Daten extrahiert werden, die noch nicht auf die Standbydatenbank angewendet wurden.

Wenn Oracle Data Guard Fast-Start Failover deaktiviert ist und Sie den zusätzlichen integrierten Extract-Parameter FAILOVERTARGETDESTID nicht angeben, wird der Export mit den folgenden Fehlern beendet:

ERROR OGG-06219 Unable to extract data from the Logmining server OGG$CAP_XXXXX.
ERROR OGG-02078 Extract encountered a fatal error in a processing thread and is abending.

Um den richtigen Wert für FAILOVERTARGETDESTID zu bestimmen, verwenden Sie den Parameter LOG_ARCHIVE_DEST_N aus der Quelldatenbank GoldenGate, mit dem Redo an die Quell-Standbydatenbank gesendet wird. Beispiel: Wenn LOG_ARCHIVE_DEST_2 auf die Standbydatenbank verweist, verwenden Sie den Wert 2.

Führen Sie als Benutzer oracle auf dem primären Datenbanksystem den folgenden Befehl aus:

[opc@exapri-node1 ~]$ sudo su - oracle
[oracle@exapri-node1 ~]$ source <db_name>.env
[oracle@exapri-node1 ~]$ sqlplus / as sysdba

SQL> show parameters log_archive_dest

NAME                  TYPE        VALUE
--------------------- ----------- ---------------------------------------------------
log_archive_dest_1    string      location=USE_DB_RECOVERY_FILE_DEST,
                                  valid_for=(ALL_LOGFILES, ALL_ROLES)

log_archive_dest_2    string      service="<db_name>", SYNC AFFIRM delay=0
                                  optional compression=disable max_failure=0 reopen=300
                                  db_unique_name="<db_name>" net_timeout=30,
                                  valid_for=(online_logfile,all_roles)

In diesem Beispiel wird der Extract-Parameter auf Folgendes gesetzt:

TRANLOGOPTIONS FAILOVERTARGETDESTID 2

Extract erstellen:

  1. Melden Sie sich bei der Oracle GoldenGate-Quelle an.

  2. Wählen Sie im Navigationsmenü die Option Extracts.

  3. Wählen Sie auf der Seite "Extracts" die Option Extract hinzufügen aus.

  4. Füllen Sie das Formular "Extrakt hinzufügen" wie folgt aus:

    1. Für Extraktinformationen:

      • Extrakttyp: Integrierter Extrakt.

      • Prozessname: EXT_1

      • Beschreibung: Extrahieren für Region 1 CDB

    2. Für Extraktionsoptionen:

      • Zugangsdatendomain: GoldenGate

      • Zugangsdatenalias: Reg1_CDB

      • Bei PDBs registrieren: PDB-Name

      • Intent: Unidirektional

      • Beginn: Jetzt

      • Trailname: aa

  5. Wählen Sie Weiter aus

  6. Wenn Sie CDB Root Capture aus PDB verwenden, fügen Sie den Parameter SOURCECATALOG mit dem PDB-Namen hinzu

  7. Wählen Sie Erstellen und ausführen aus.

Schritt 2.5.2 - Replicat-Konfiguration

Oracle empfiehlt generell die Verwendung von integriertem parallelem Replicat, das eine bessere Apply-Performance für die meisten Workloads bietet, wenn sich GGHUB in derselben Region wie die Oracle GoldenGate-Zieldatenbank befindet.

Die beste Apply-Performance kann erreicht werden, wenn die Netzwerklatenz zwischen GGHUB und Zieldatenbank so gering wie möglich ist. Die folgende Konfiguration wird für das Remote-Replicat empfohlen, das auf Oracle GGHUB ausgeführt wird.

Schritt 2.5.2.1 - Checkpoint-Tabelle erstellen

Die Checkpoint-Tabelle ist eine erforderliche Komponente für Oracle GoldenGate Replicat-Prozesse. Nachdem Sie sich auf der Seite {\b Credentials} des Administration Service bei der Datenbank angemeldet haben, können Sie die Checkpoint-Tabelle erstellen.

Erstellen Sie die Checkpoint-Tabelle im Ziel-Deployment:

  1. Melden Sie sich bei der Oracle GoldenGate-Web-UI an.

  2. Wählen Sie im Navigationsmenü die Option DB-Verbindungen aus, und melden Sie sich bei der Zieldatenbank an.

  3. Nachdem Sie die Verbindung zur Zieldatenbank erfolgreich hergestellt haben, wählen Sie Checkpoint-Tabelle aus.

  4. Wählen Sie Checkpoint hinzufügen (Plussymbol) aus. Die Seite "Checkpoint hinzufügen" wird angezeigt.

  5. Geben Sie für die Checkpoint-Tabelle ggadmin.chkp_table ein.

  6. Klicken Sie auf Weiterleiten

Weitere Informationen finden Sie unter Checkpointtabelle hinzufügen.

Schritt 2.5.2.2 - Replicat hinzufügen

Nachdem Sie die Datenbankverbindungen eingerichtet und geprüft haben, können Sie ein Replicat für das Deployment hinzufügen, indem Sie die folgenden Schritte ausführen:

  1. Wählen Sie im Navigationsmenü die Option Replikate.

  2. Wählen Sie auf der Seite "Replicats" die Option Replicat hinzufügen (Plussymbol). Die Seite "Replicat hinzufügen" wird angezeigt.

  3. Wählen Sie einen Replicat-Typ aus, und wählen Sie Weiter.

  4. Geben Sie die Details wie folgt ein:

    • Prozessname: REP_1

    • Beschreibung: Replicat für PDB Region 2

    • Intent: Unidirektional

    • Zugangsdatendomain: GoldenGate

    • Zugangsdatenalias: Reg2_PDB

    • Quelle: Trail

    • Trailname: aa

    • Beginn: Position im Log

    • Checkpoint-Tabelle: "GGADMIN"."CHKP_TABLE

  5. Wählen Sie Weiter aus

  6. Wählen Sie im Aktionsmenü Starten aus.

Schritt 2.5.3 - Konfiguration des Verteilungspfads

Verteilungspfade sind nur erforderlich, wenn Traildateien in einer anderen oder sogar derselben Region an einen zusätzlichen Oracle GoldenGate-Hub gesendet werden müssen, wie in der folgenden Abbildung beschrieben.

Abbildung 1: Oracle GoldenGate-Verteilungspfad

Beschreibung des Bildes folgt

Wenn Sie Oracle GoldenGate-Verteilungspfade mit dem NGINX-Reverse Proxy verwenden, müssen zusätzliche Schritte ausgeführt werden, um sicherzustellen, dass der Pfadclient und die Serverzertifikate konfiguriert sind.

Weitere Informationen finden Sie unter Verteilungsservicepfad. Ein Schritt-für-Schritt-Beispiel finden Sie im folgenden Video: "Verbinden Sie ein On-Premise-Oracle GoldenGate mit OCI GoldenGate mit NGINX", um die Zertifikate korrekt zu konfigurieren.

In diesem Unterschritt werden folgende Schritte ausgeführt:

Schritt 2.5.3.1: Laden Sie das Root-Zertifikat des Zielservers herunter, und laden Sie es dann in die Oracle GoldenGate-Quelle hoch

Laden Sie das Root-Zertifikat des Ziel-Deployment-Servers herunter, und fügen Sie das CA-Zertifikat dem Service Manager für das Quell-Deployment hinzu.

  1. Melden Sie sich bei der Web-UI GoldenGate für das Ziel GoldenGate an.

  2. Folgen Sie "Schritt 2 - Root-Zertifikat des Zielservers herunterladen" im Video Verbinden Sie ein On-Premise-Oracle GoldenGate mit NGINX mit OCI GoldenGate.

Schritt 2.5.3.2: Erstellen Sie einen Benutzer im Ziel-Deployment, damit die Quelle Oracle GoldenGate verwendet werden kann

  1. Wählen Sie in der Ziel-Web-UI GoldenGate in der linken Navigationsleiste die Option Benutzerverwaltung aus.

  2. Wählen Sie Neuen Benutzer hinzufügen aus, und führen Sie folgende Schritte aus:

    1. Authentifiziert von: Wählen Sie "Kennwort" aus der Dropdown-Liste aus.

    2. Rolle: Wählen Sie in der Dropdown-Liste den Operator aus.

    3. Benutzername: Geben Sie Ihren Benutzernamen ein.

    4. Kennwort und Kennwort bestätigen: Geben Sie das mit diesem Benutzer verknüpfte Kennwort an.

  3. Klicken Sie auf Weiterleiten.

Schritt 2.5.3.3: Pfadverbindung in Oracle GoldenGate-Quelle erstellen

Erstellen Sie im Quell-Deployment eine Pfadverbindung, die das Ziel-Deployment mit dem im vorherigen Schritt erstellten Benutzer verbindet. Beispiel: Eine Domain von OP2C und ein Alias von WSSNET.

  1. Melden Sie sich bei der Oracle GoldenGate-Quelle an.

  2. Wählen Sie im Navigationsmenü die Option Pfadverbindungen.

  3. Wählen Sie auf der Seite "Pfadverbindungen" die Option Pfadverbindung hinzufügen aus, und führen Sie die folgenden Schritte aus:

    1. Zugangsdatenalias: Geben Sie einen Alias ein.

    2. Benutzer-ID: Geben Sie den Namen des Benutzers ein, der in Schritt 2.5.3.2 erstellt wurde.

    3. Kennwort und Kennwort bestätigen: Geben Sie das mit diesem Benutzer verknüpfte Kennwort aus Schritt 2.5.3.2 ein.

  4. Klicken Sie auf Weiterleiten.

Schritt 2.5.3.4: Verteilungspfad auf der Oracle GoldenGate-Quelle für das Ziel-Deployment erstellen

Ein Pfad wird erstellt, um Traildateien vom Verteilungsserver an den Empfangsserver zu senden. Sie können einen Pfad aus dem Verteilungsservice erstellen. So fügen Sie einen Pfad für das Quell-Deployment hinzu:

  1. Wählen Sie im Quell-Oracle GoldenGate im Navigationsmenü die Option Verteilungsservicepfade aus.

  2. Wählen Sie Pfad hinzufügen (Plussymbol). Die Seite "Pfad hinzufügen" wird angezeigt.

  3. Geben Sie die Details wie folgt ein:

    1. Geben Sie einen Pfadnamen ein.

    2. Wählen Sie unter Quelle in der Dropdown-Liste den Extract-Namen aus.

    3. Geben Sie unter Generierte Quell-URI localhost als Namen des Servers ein. Dadurch kann der Verteilungspfad auf einem der Oracle RAC-Knoten gestartet werden.

    4. Wählen Sie unter Zielauthentifizierungsmethode die Option UserID Alias aus.

    5. Wählen Sie unter Ziel die Option wss (Secure Web Socket) aus.

    6. Geben Sie unter Zielhost den Zielhostnamen/VIP ein, der für die Verbindung zum Zielsystem verwendet werden soll.

    7. Geben Sie unter Portnummer die Portnummer ein, mit der NGINX konfiguriert wurde (Standardwert ist 443).

    8. Wählen Sie unter Domain die Zugangsdatendomain aus, die in Schritt 2.3.3.3 erstellt wurde.

    9. Wählen Sie unter Alias den Zugangsdatenalias wssnet aus, der auch in Schritt 2.3.3.3 erstellt wurde.

    10. Legen Sie unter Optionen für automatischen Neustart den Verteilungspfad fest, der neu gestartet werden soll, wenn der Verteilungsserver automatisch startet. Dies ist erforderlich, sodass nach einer RAC-Knotenumspeicherung des Distributionsservers kein manueller Eingriff erforderlich ist.

    11. Geben Sie unter Wiederholungen den Wert 10 ein.

    12. Geben Sie für Verzögerung, d.h. die Zeit in Minuten, die zwischen Neustartversuchen angehalten werden soll, 1 ein.

  4. Wählen Sie Pfad erstellen aus.

  5. Wählen Sie im Menü "Aktion" die Option Starten.