Daten aus PostgreSQL in MySQL replizieren

Hier erfahren Sie, wie Sie Daten von PostgreSQL mit OCI GoldenGate in MySQL replizieren.

Bevor Sie beginnen

Um diesen Schnellstart erfolgreich abzuschließen, benötigen Sie Folgendes:

Umgebung eingerichtet: PostgreSQL

So richten Sie die Umgebung für diesen Schnellstart ein:

  1. Führen Sie die folgenden Befehle zur Installation von PostgreSQL aus.

    1. PostgreSQL-Server installieren:

      sudo yum install postgresql-server
    2. Installieren Sie das postgresql-contrib-Modul, um diese SQL-Ausnahme zu vermeiden:

      sudo yum install postgresql-contrib
    3. Erstellen Sie ein neues PostgreSQL-Datenbankcluster:

      sudo postgresql-setup --initdb
    4. Aktivieren Sie postgresql.service:

      sudo systemctl enable postgresql.service
    5. Starten Sie postgresql.service:

      sudo systemctl start postgresql.service
  2. Standardmäßig sind in PostgreSQL nur lokale Verbindungen zulässig. Remotekonnektivität zu PostgreSQL zulassen.

    1. Bereiten Sie unter /var/lib/pgsql/data/postgresql.conf die Datenbank für die Replikation vor.

    2. Suchen und entfernen Sie die Kommentarzeichen listen_addresses = 'localhost', und ändern Sie localhost in ein Sternchen (`):

      listen_addresses = '*'
    3. Legen Sie die folgenden Parameter wie folgt fest:

      • wal_level = logical

      • max_replication_slots = 1

      • max_wal_senders = 1

      • track_commit_timestamp = on

      Hinweis:

      Konfigurieren Sie /var/lib/pgsql/data/pg_hba.conf, um sicherzustellen, dass die Clientauthentifizierung so festgelegt ist, dass Verbindungen von einem Oracle GoldenGate-Host zulässig sind. Beispiel: Fügen Sie Folgendes hinzu:

      #Allow connections from remote hosts
      
      host all all 0.0.0.0/0 md5

      Weitere Informationen finden Sie unter Die Datei pg_hba.conf.

      1. PostgreSQL-Server neu starten:
      sudo systemctl restart postgresql.service
      1. Wenn Sie Oracle Cloud Compute zum Hosten von PostgreSQL verwenden, öffnen Sie Port 5432:
      sudo firewall-cmd --permanent --add-port=5432/tcp
      sudo firewall-cmd --reload
      sudo firewall-cmd --list-all
    4. Öffnen Sie Port 5432 in der Sicherheitsliste Ihres VCN.

    5. Verbindung zu PostgreSQL herstellen.

      > sudo su - postgres
      > psql

      Hinweis: Alternativ können Sie sudo su - postgres psql eingeben, wenn das obige Beispiel nicht funktioniert.

    6. PostgreSQL einrichten.

      1. Laden Sie seedSRCOCIGGLL_PostgreSQL.sql herunter, und führen Sie es aus, um die Datenbank einzurichten und die Beispieldaten zu laden.

      2. Führen Sie die folgenden Befehle aus, um den Benutzer einzurichten (stellen Sie sicher, dass Sie <password> durch ein tatsächliches Kennwort ersetzen):

      create user ggadmin with password '<password>';
      alter user ggadmin with SUPERUSER;
      GRANT ALL PRIVILEGES ON DATABASE ociggll TO ggadmin;

Umgebung eingerichtet: MySQL

  1. Öffnen Sie Port 3306, über den OCI GoldenGate Verbindungen herstellen kann.

    1. Suchen Sie in der Oracle Cloud-Konsole das Subnetz, das die HeatWave-Datenbank verwendet.

    2. Erzeugen Sie in der Sicherheitsliste des Subnetzes eine Ingress-Regel für Hafen TCP/3306.

  2. Erstellen Sie einen ggadmin-Benutzer mit dem folgenden Skript. Ersetzen Sie <ggadmin-password> durch ein gültiges Kennwort:

    CREATE USER 'ggadmin' IDENTIFIED BY '<ggadmin-password>';
    GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT, CREATE,CREATE VIEW, EVENT, INSERT, UPDATE, DROP,EXECUTE, DELETE ON *.* TO 'ggadmin';
  3. Erstellen Sie Zieltabellen mit Beispielschema.

    Stellen Sie sicher, dass die Tabellen und der Benutzer erfolgreich erstellt wurden.

Aufgabe 1: OCI GoldenGate-Ressourcen erstellen

Für dieses Schnellstartbeispiel sind Deployments und Verbindungen sowohl für die Quelle als auch für das Ziel erforderlich.

  1. Erstellen Sie ein Deployment für die PostgreSQL-Quelldatenbank.

  2. Erstellen Sie ein MySQL-Deployment für die HeatWave-Zieldatenbank.

  3. PostgreSQL-Verbindung erstellen.

    1. Wählen Sie unter Typ in der Dropdown-Liste die Option PostgreSQL-Server aus.

    2. Geben Sie unter Datenbankname ociggll ein.

    3. Geben Sie unter Host die öffentliche IP der Compute-Instanz ein, auf der PostgreSQL ausgeführt wird.

    4. Geben Sie unter Port die Nummer 5432 ein.

    5. Geben Sie unter Username ggadmin ein.

    6. Geben Sie Ihr Kennwort für Kennwort ein.

    7. Wählen Sie unter Sicherheitsprotokoll in der Dropdown-Liste die Option Nur aus.

  4. HeatWave-Verbindung erstellen.

  5. (Optional) Wenn Ihre HeatWave-Datenbank keinen öffentlichen Endpunkt hat, erstellen Sie eine Verbindung zu GoldenGate, und weisen Sie diese Verbindung dem PostgreSQL-Quell-Deployment zu.

  6. Weisen sie die Quellverbindung dem PostgreSQL-Quell-Deployment zu.

  7. Weisen sie die Zielverbindung dem MySQL-Ziel-Deployment zu.

Aufgabe 2: Zusätzliches Logging aktivieren

So aktivieren Sie zusätzliches Logging:

  1. Starten Sie die PostgreSQL GoldenGate-Deployment-Konsole:

    1. Wählen Sie auf der Seite "Deployments" das PostgreSQL-Deployment aus, um die zugehörigen Details anzuzeigen.

    2. Wählen Sie auf der Detailseite des PostgreSQL-Deployments die Option Konsole starten aus.

    3. Geben Sie auf der Anmeldeseite der Deployment-Konsole die GoldenGate-Admin-Zugangsdaten ein, die in Aufgabe 1, Schritt 1 angegeben sind.

      Hinweis: Eine Anmeldung ist erforderlich, wenn IAM beim Erstellen eines Deployments nicht als Zugangsdatenspeicher ausgewählt wurde.

  2. Wählen Sie in der Deployment-Konsole in der linken Navigationsleiste die Option DB-Verbindungen, dann die PostgreSQL-Quelldatenbank und dann Trandata aus.

  3. Wählen Sie auf der Seite "TRANDATA" neben "TRANDATA-Informationen" die Option TRANDATA hinzufügen (Plussymbol).

  4. Geben Sie im Bereich "Trandata" unter Schemaname src_ociggll ein, und wählen Sie Weiterleiten aus.

    Hinweis: Mit dem Suchfeld können Sie nach src_ociggll suchen und prüfen, ob die Tabellen hinzugefügt wurden.

Aufgabe 3: Extracts erstellen

  1. Fügen Sie den Change Data Capture Extract hinzu:

    1. Wählen Sie in der linken Navigationsleiste die Option Extracts.

    2. Wählen Sie auf der Seite "Extracts" die Option Extract hinzufügen (Plussymbol), und füllen Sie die Felder wie folgt aus:

      • Auf der Seite "Daten extrahieren":

        1. Wählen Sie unter Extract-Typ die Option Change Data Capture Extract aus.

        2. Geben Sie unter Prozessname einen Namen wie ECDC für den Extract an.

        3. Wählen Sie Weiter.

      • Gehen Sie auf der Seite "Exportoptionen" wie folgt vor:

        1. Wählen Sie für Quellzugangsdaten in der Dropdown-Liste Domain die Option Oracle GoldenGate aus

        2. Wählen Sie in der Dropdown-Liste Alias die PostgreSQL-Quelldatenbank aus.

        3. Geben Sie unter "Trailname extrahieren" einen aus zwei Zeichen stehenden Trailnamen wie C1 ein.

        4. Wählen Sie Weiter.

      • Ersetzen Sie auf der Seite "Parameter extrahieren" MAP *.*, TARGET *.*; durch Folgendes:

        TABLE SRC_OCIGGLL.*;
    3. Wählen Sie Erstellen und ausführen aus.

  2. Fügen Sie den Extract für das erstmalige Laden hinzu:

    1. Wählen Sie auf der Seite "Extracts" die Option Extract hinzufügen aus, und füllen Sie das Formular "Extract hinzufügen" wie folgt aus:

      • Auf der Seite "Daten extrahieren":

        1. Wählen Sie für den Extract-Typ die Option Initial Load Extract aus.

        2. Geben Sie unter Prozessname einen Namen wie EIL ein.

        3. Wählen Sie Weiter.

      • Gehen Sie auf der Seite "Exportoptionen" wie folgt vor:

        1. Wählen Sie für Quellzugangsdaten in der Dropdown-Liste Domain die Option Oracle GoldenGate aus.

        2. Wählen Sie in der Dropdown-Liste Alias die PostgreSQL-Datenbank aus.

        3. Geben Sie unter Trailname extrahieren einen aus zwei Zeichen stehenden Trailnamen wie I1 ein.

        4. Wählen Sie Weiter.

      • Ersetzen Sie auf der Seite "Extract-Parameter" den Inhalt des Textbereichs durch Folgendes:

        EXTRACT EIL
        USERIDALIAS PostgreSQL_Compute, DOMAIN OracleGoldenGate
        EXTFILE I1, PURGE
        TABLE src_ociggll.*;

        Hinweis: Stellen Sie sicher, dass Sie den Parameter SOURCEDB vor USERIDALIAS entfernen, bevor Sie fortfahren.

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

Sie kehren zur Seite "Extracts" zurück, auf der Sie den Extract-Start beobachten können.

Aufgabe 4: Verteilungspfad für den Extract der erstmaligen Ladung erstellen

Gehen Sie folgendermaßen vor, um einen Verteilungspfad für den erstmaligen Ladeextrakt zu erstellen:

  1. Wählen Sie in der Oracle Cloud-Konsole auf der Seite "Deployments" das Ziel-MySQL-Deployment aus.

  2. Wählen Sie auf der Seite "Deployment-Details" die Option Konsole starten aus, und melden Sie sich als Admin-Benutzer an.

  3. Wenn Sie den IAM-Zugangsdatenspeicher verwenden, fahren Sie mit dem Schritt "Verteilungspfad erstellen" fort. Wenn Sie den GoldenGate-Zugangsdatenspeicher verwenden, erstellen Sie einen Benutzer, mit dem die Quelle GoldenGate eine Verbindung zum GoldenGate-Ziel herstellt.

    1. Wählen Sie im Navigationsmenü die Option Benutzeradministration aus.

    2. Wählen Sie Neuen Benutzer hinzufügen (Plussymbol), füllen die Felder wie folgt auf, und wählen Sie Weiterleiten aus:

      • Geben Sie unter Benutzername ggsnet ein.

      • Wählen Sie unter Rolle die Option Operator aus.

      • Geben Sie das Kennwort zur Bestätigung zweimal ein.

  4. Erstellen Sie in der Quell-PostgreSQL-Deployment-Konsole eine Pfadverbindung für den im vorherigen Schritt erstellten Benutzer.

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

    2. Wählen Sie Pfadverbindung hinzufügen (Plussymbol), füllen Sie die Felder wie folgt aus, und wählen Sie Weiterleiten aus:

      • Geben Sie als Zugangsdatenalias dpuser ein.

      • Geben Sie unter "Benutzer-ID" ggsnet ein.

      • Geben Sie unter "Kennwort" dasselbe Kennwort ein, das im vorherigen Schritt verwendet wurde.

  5. Verteilungspfad erstellen.

    1. Wählen Sie in der Servicemenüleiste Pfade und dann Verteilungspfad hinzufügen (Plussymbol).

    2. Füllen Sie das Formular "Pfad hinzufügen" wie folgt aus:

      • Gehen Sie auf der Seite "Pfadinformationen" wie folgt vor:

        1. Geben Sie unter Pfadname einen Namen für diesen Pfad an.

        2. Wählen Sie Weiter.

      • Gehen Sie auf der Seite {\b Source Options} wie folgt vor:

        1. Geben Sie unter Quellextrakt keinen Wert ein.

        2. Geben Sie unter Trailname den Trailnamen für den Extract des erstmaligen Ladens (I1) ein.

        3. Wählen Sie Weiter.

      • Gehen Sie auf der Seite "Zieloptionen" wie folgt vor:

        1. Wählen Sie unter Ziel die Option wss aus.

        2. Geben Sie unter Zielhost die Ziel-Deployment-URL ohne https:// oder abschließende Schrägstriche an.

        3. Geben Sie unter Portnummer 443 ein.

        4. Geben Sie unter Trailname I1 ein.

        5. Wählen Sie unter Zielauthentifizierungsmethode die Option UserID-Alias.

        6. Geben Sie unter Domain den Domainnamen an, der im vorherigen Schritt erstellt wurde.

        7. Geben Sie unter Alias den im vorherigen Schritt erstellten Alias ein (dpuser).

        8. Wählen Sie Weiter.

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

    Sie kehren zur Seite "Verteilungsservice" zurück, auf der Sie den erstellten Pfad prüfen können.

  6. Prüfen Sie in der Ziel-Deployment-Konsole den Empfangspfad, der als Ergebnis des Verteilungspfades erstellt wurde:

    1. Wählen Sie Pfade aus.

    2. Prüfen Sie die Pfadinformationen.

Aufgabe 5: Replicat zum erstmaligen Laden hinzufügen

  1. Fügen Sie in der MySQL-Deployment-Konsole des Ziels eine Checkpoint-Tabelle hinzu.

    1. Wählen Sie im Navigationsmenü DB-Verbindungen, die Ziel-HeatWave-Datenbank, Checkpoints aus.

    2. Wählen Sie Checkpoint hinzufügen (Plussymbol) aus.

    3. Geben Sie im Checkpoint-Bereich unter Schematabelle SRCMIRROR_OCIGGLL.CHECKTABLE ein.

    4. Klicken Sie auf Weiterleiten.

  2. Fügen Sie das Replicat für das erstmalige Laden hinzu.

    1. Wählen Sie im Navigationsmenü Replikate und dann Replikat hinzufügen (Plussymbol).

    2. Füllen Sie auf der Seite "Replicats" die Felder "Replicat hinzufügen" wie folgt aus:

      1. Auf der Seite "Replicat-Informationen":

        1. Wählen Sie unter Replikattyp die Option Parallel oder Koordiniert aus.

        2. Geben Sie unter Prozessname einen Namen wie RIL ein.

        3. Wählen Sie Weiter.

      2. Gehen Sie auf der Seite {\b Replicat Options} wie folgt vor:

        1. Geben Sie unter Replicat-Trailname den Namen des Trails aus Aufgabe 2 (I1) ein.

        2. Wählen Sie unter Zieldaten die Domain und Alias für die HeatWave-Datenbankverbindung aus.

        3. Wählen Sie unter Checkpoint-Tabelle die Checkpoint-Tabelle aus, die Sie in Schritt 1 erstellt haben.

        4. Wählen Sie Weiter.

      3. Fügen Sie auf der Seite "Parameterdatei" die folgende Zuordnung hinzu:

        MAP src_ociggll.*, TARGET SRCMIRROR_OCIGGLL.*;
    3. Wählen Sie Erstellen und ausführen aus.

    Sie kehren zur Seite "Replicats" zurück, auf der Sie die Replicat-Details prüfen können.

  3. Erstmalige Ladung prüfen:

    1. Stellen Sie in Cloud Shell eine Verbindung zum VCN und Subnetz her, das von Ihrer HeatWave-Instanz verwendet wird.

    2. Starten Sie nach der Verbindung den folgenden Befehl:

      mysqlsh <user>@<MySQL DB Private IP>:3306 --sql
    3. Führen Sie das folgende Skript aus, um die Daten zu prüfen:

      select * from SRCMIRROR_OCIGGLL.SRC_CITY;
      select * from SRCMIRROR_OCIGGLL.SRC_CUSTOMER;

    Die Ausgabe sollte die Daten zurückgeben, die als Ergebnis des erstmaligen Ladevorgangs in die Zieldatenbanktabellen geladen wurden.

Aufgabe 6: Verteilungspfad für Change Data Capture erstellen

  1. Wählen Sie in der Quell-PostgreSQL-Deployment-Konsole die Option Verteilungsservice aus.

  2. Wählen Sie Verteilungspfad hinzufügen aus.

  3. Füllen Sie das Formular "Pfad hinzufügen" wie folgt aus:

    1. Gehen Sie auf der Seite "Pfadinformationen" wie folgt vor:

      1. Geben Sie unter Pfadname einen Namen ein.

      2. Wählen Sie Weiter.

    2. Gehen Sie auf der Seite {\b Source Options} wie folgt vor:

      1. Wählen Sie unter Quellextrakt den Change Data Capture Extract (ECDC) aus.

      2. Wählen Sie unter Trailname die Traildatei für den Change Data Capture-Extrakt (C1).

      3. Wählen Sie Weiter.

    3. Gehen Sie auf der Seite "Zieloptionen" wie folgt vor:

      1. Wählen Sie unter Ziel die Option wss aus.

      2. Geben Sie unter Zielhost die Ziel-Deployment-Konsolen-URL ein (Sie finden diese auf der Seite mit den Deployment-Details ohne https:// oder abschließende Schrägstriche).

      3. Geben Sie unter Portnummer 443 ein.

      4. Geben Sie unter Trailname C1 ein.

      5. Wählen Sie unter Zielauthentifizierungsmethode die Option UserID-Alias.

      6. Geben Sie unter Domain den Domainnamen ein.

      7. Geben Sie unter Alias den Alias ein.

    4. Wählen Sie Pfad erstellen und ausführen aus.

  4. Wählen Sie in der MySQL-Deployment-Konsole für das Ziel die Option Empfängerservice aus, und prüfen Sie den erstellten Empfangspfad.

Aufgabe 7: Replicat für Change Data Capture hinzufügen

Führen Sie Updates an der PostgreSQL-Quelldatenbank aus, um die Replikation in der HeatWave-Zieldatenbank zu prüfen.

  1. Replicat hinzufügen:

    1. Wählen Sie in der Deployment-Konsole des Ziels die Option Administrationsservice, und wählen Sie im Navigationsmenü die Option Replikate aus.

    2. Wählen Sie auf der Seite Replikate die Option Replicat hinzufügen (Plussymbol), und füllen Sie das Formular "Replicat hinzufügen" wie folgt aus:

      • Auf der Seite "Replicat-Informationen":
        1. Wählen Sie unter Replicat-Typ die Option Nicht integriertes Replicat aus.

        2. Geben Sie unter Prozessname einen Namen wie RCDC ein.

        3. Wählen Sie Weiter.

      • Gehen Sie auf der Seite {\b Replicat Options} wie folgt vor:
        1. Geben Sie unter Replicat-Trailname den Namen des Trails aus Aufgabe 3 (C1) ein.

        2. Wählen Sie unter Zielzugangsdaten die Domain und den Alias für die HeatWave-Verbindung aus.

        3. Wählen Sie unter Checkpoint-Tabelle die Checkpoint-Tabelle aus.

    3. Ersetzen Sie MAP *.*, TARGET *.*; auf der Seite "Replicat-Parameter" durch die folgende Zuordnung:

      MAP src_ociggll.*, TARGET SRCMIRROR_OCIGGLL.*;
    4. Wählen Sie Erstellen und ausführen aus.

      Sie kehren zur Seite "Replicats" zurück, auf der Sie die Replicat-Details prüfen können.

  2. Change Data Erfassen prüfen:

    1. Führen Sie Updates an der Quell-PostgreSQL-Datenbank aus, um die Replikation in der Ziel-HeatWave-Datenbank zu prüfen. Führen Sie das folgende Skript aus, um Einfügungen in die PostgreSQL-Datenbank auszuführen:

      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1000,'Houston',20,743113);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1001,'Dallas',20,822416);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1002,'San Francisco',21,157574);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1003,'Los Angeles',21,743878);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1004,'San Diego',21,840689);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1005,'Chicago',23,616472);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1006,'Memphis',23,580075);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1007,'New York City',22,124434);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1008,'Boston',22,275581);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1009,'Washington D.C.',22,688002);
    2. Wählen Sie in der Quell-PostgreSQL-Deployment-Konsole den Namen des Change Data Capture Extract (ECDC) aus, wählen Sie Details und dann Statistiken aus. Stellen Sie sicher, dass src_ociggll.src_city 10 Insert-Vorgänge enthält.

      Hinweis: Wenn der Extract keine Einfügevorgänge erfasst hat, starten Sie den Extract ECDC neu.

    3. Wählen Sie im Ziel-MySQL-Deployment das RCDC-Replicat aus, und prüfen Sie die Details und Statistiken, um die Anzahl der Einfügevorgänge zu prüfen.

Aufgabe 8: Prozesse überwachen und verwalten

  1. Überwachen Sie den Replikationsprozess.

  2. Traildateien verwalten.