Daten aus PostgreSQL in MySQL replizieren

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

Bevor Sie beginnen

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

  • Eine PostgreSQL-Installation, die als Quelldatenbank dient (Installationsanweisungen folgen in der Einrichtung der Umgebung).
  • Öffnen Sie Port 5432 in der Sicherheitsliste des VCN, um auf PostgreSQL über den Standardport zugreifen zu können.
  • Eine HeatWave-Datenbank, die als Zieldatenbank verwendet werden soll.

Umgebung einrichten: PostgreSQL

So richten Sie die Umgebung für diesen Schnellstart ein:
  1. Führen Sie die folgenden Befehle aus, um PostgreSQL zu installieren.
    1. Installieren Sie den PostgreSQL-Server:
      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 lässt PostgreSQL nur lokale Verbindungen zu. Remotekonnektivität zu PostgreSQL zulassen.
    1. Bereiten Sie die Datenbank in /var/lib/pgsql/data/postgresql.conf für die Replikation vor.
    2. Suchen und entfernen Sie die Kommentarzeichen für listen_addresses = 'localhost', und ändern Sie localhost in ein Sternchen (*):
      listen_addresses = '*'
    3. Legen Sie die folgenden Parameter folgendermaßen 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 Datei pg_hba.conf.
    4. Starten Sie den PostgreSQL-Server neu:
      sudo systemctl restart postgresql.service
  3. Wenn Sie PostgreSQL mit Oracle Cloud Compute hosten, ö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 des VCN.
  5. Stellen Sie eine Verbindung zu PostgreSQL her.
    > sudo su - postgres
    > psql

    Hinweis:

    Alternativ können Sie sudo su - postgres psql eingeben, wenn das obige Beispiel nicht funktioniert.
  6. Richten Sie PostgreSQL ein.
    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;

Einrichten der Umgebung: MySQL

  1. Öffnen Sie Port 3306, über den OCI GoldenGate verbunden werden kann.
    1. Suchen Sie in der Oracle Cloud-Konsole das Subnetz, das von der HeatWave-Datenbank verwendet wird.
    2. Erstellen Sie in der Sicherheitsliste des Subnetzes eine Ingress-Regel für Port 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 dem 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 Quelldatenbank PostgreSQL.
  2. Erstellen Sie ein MySQL-Deployment für die Zieldatenbank HeatWave.
  3. Erstellen Sie eine PostgreSQL-Verbindung.
    1. Wählen Sie in der Dropdown-Liste unter Typ 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 Benutzername ggadmin ein.
    6. Geben Sie unter Kennwort Ihr Kennwort ein.
    7. Wählen Sie unter Sicherheitsprotokoll in der Dropdown-Liste die Option Einfach aus.
  4. Erstellen Sie eine HeatWave-Verbindung.
  5. (Optional) Wenn die HeatWave-Datenbank keinen öffentlichen Endpunkt aufweist, erstellen Sie eine Verbindung zu GoldenGate, und weisen Sie diese Verbindung dem Deployment der Quelle PostgreSQL zu.
  6. Weisen Sie die Quellverbindung dem Deployment der Quelle PostgreSQL zu.
  7. Weisen Sie die Zielverbindung dem Deployment des MySQL-Ziels 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. Klicken Sie auf der Seite mit den Details des Deployments PostgreSQL auf Konsole starten.
    3. Geben Sie auf der Anmeldeseite der Deployment-Konsole die in Aufgabe 1, Schritt 1 angegebenen Admin-Zugangsdaten GoldenGate ein.
  2. Klicken Sie in GoldenGate 23ai in der linken Navigation auf DB-Verbindungen, dann auf die Quelldatenbank PostgreSQL und dann auf Trandata.
  3. Klicken Sie auf der Seite "TRANDATA" neben "TRANDATA-Informationen" auf TRANDATA hinzufügen (Plussymbol).
  4. Geben Sie im Trandata-Bereich unter Schemaname src_ociggll.* ein, und klicken Sie auf Weiterleiten.

    Hinweis:

    Suchen Sie src_ociggll mit dem Suchfeld, und prüfen Sie, ob die Tabellen hinzugefügt wurden.

Aufgabe 3: Extracts erstellen

  1. Fügen Sie die Change Data Capture Extract hinzu:
    1. Klicken Sie in der linken Navigationsleiste auf Extrakte.
    2. Klicken Sie auf der Seite Extrakte auf Extrahieren hinzufügen (Plussymbol), und füllen Sie die Felder wie folgt aus:
      • Gehen Sie auf der Seite "Daten extrahieren" wie folgt vor:
        1. For Extract type, select Change Data Capture Extract.
        2. Geben Sie unter Prozessname einen Namen wie ECDC für den Extrakt ein.
        3. Klicken Sie auf Weiter.
      • Gehen Sie auf der Seite Optionen extrahieren wie folgt vor:
        1. Wählen Sie unter "Quellzugangsdaten" in der Dropdown-Liste Domain die Option Oracle GoldenGate aus
        2. Wählen Sie die Quelldatenbank PostgreSQL in der Dropdown-Liste Alias aus.
        3. Geben Sie unter Extrahieren einen aus zwei Zeichen bestehenden Trailnamen wie C1 ein.
        4. Klicken Sie auf Weiter.
      • Ersetzen Sie auf der Seite Extract-Parameter MAP *.*, TARGET *.*; durch Folgendes:
        TABLE SRC_OCIGGLL.*;
    3. Klicken Sie auf Erstellen und ausführen.
  2. Erstmaliges Laden Extrahieren hinzufügen:
    1. Klicken Sie auf der Seite "Exporte" auf Extrahieren hinzufügen, und füllen Sie das Formular "Extrahieren hinzufügen" wie folgt aus:
      • Gehen Sie auf der Seite "Informationen zum Extrahieren" wie folgt vor:
        1. Wählen Sie unter Extract die Option Initial Load Extract aus.
        2. Geben Sie unter Prozessname einen Namen wie EIL ein.
        3. Klicken Sie auf Weiter.
      • Gehen Sie auf der Seite Optionen extrahieren wie folgt vor:
        1. Wählen Sie unter "Quellzugangsdaten" in der Dropdown-Liste Domain die Option Oracle GoldenGate aus.
        2. Wählen Sie in der Dropdown-Liste Alias die Datenbank PostgreSQL aus.
        3. Geben Sie unter Extrahieren Trailname einen aus zwei Zeichen bestehenden Trailnamen wie I1 ein.
        4. Klicken Sie auf Weiter.
      • Ersetzen Sie auf der Seite "Parameter Extrahieren" 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. Klicken Sie auf Erstellen und ausführen.
Sie kehren zur Seite Extrakte zurück, auf der Sie den Extract-Vorgang starten können.

Aufgabe 4: Distribution Path für Initial Load Extract erstellen

Gehen Sie folgendermaßen vor, um eine Distribution Path für Initial Load Extract zu erstellen:
  1. Wählen Sie in der Oracle Cloud-Konsole auf der Seite "Deployments" das Ziel-Deployment MySQL aus.
  2. Klicken Sie auf der Seite mit den Deployment-Details auf Konsole starten, und melden Sie sich mit dem in Aufgabe 1, Schritt 2 erstellten Admin-Details an.
  3. Wenn Sie den IAM-Zugangsdatenspeicher verwenden, fahren Sie mit dem Schritt "Distribution Path erstellen" fort. Wenn Sie den Zugangsdatenspeicher GoldenGate verwenden, erstellen Sie einen Benutzer, mit dem die Quelle GoldenGate eine Verbindung zum Ziel GoldenGate herstellt.
    1. Klicken Sie im Navigationsmenü auf Benutzerverwaltung.
    2. Klicken Sie wie folgt auf Neuen Benutzer hinzufügen (Pluszeichen), füllen Sie die Felder aus, und klicken Sie auf Weiterleiten:
      • 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 Deployment-Konsole für die Quelle PostgreSQL eine Pfadverbindung für den im vorherigen Schritt erstellten Benutzer.
    1. Klicken Sie im Navigationsmenü auf Pfadverbindungen.
    2. Klicken Sie auf Pfadverbindung hinzufügen (Pluszeichen), füllen Sie die Felder wie folgt aus, und klicken Sie auf Weiterleiten:
      • 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. Distribution Path erstellen.
    1. Klicken Sie in der Servicemenüleiste auf Distribution Service und dann auf Distribution Path hinzufügen (Plussymbol).
    2. Füllen Sie das Formular "Pfad hinzufügen" wie folgt aus:
      • Auf der Seite "Pfadinformationen":
        1. Geben Sie unter Pfadname einen Namen für diesen Pfad ein.
        2. Klicken Sie auf Weiter.
      • Gehen Sie auf der Seite {\b Source Options} wie folgt vor:
        1. Lassen Sie das Feld Quelle Extract leer.
        2. Geben Sie unter Trailname den Trailnamen Initial Load Extract (I1) ein.
        3. Klicken Sie auf 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 ein.
        3. Geben Sie unter Portnummer die Nummer 443 ein.
        4. Geben Sie unter Trailname I1 ein.
        5. Wählen Sie unter Zielauthentifizierungsmethode die Option UserID Alias aus.
        6. Geben Sie unter Domain den im vorherigen Schritt erstellten Domainnamen ein.
        7. Geben Sie unter Alias den im vorherigen Schritt erstellten Alias ein (dpuser).
        8. Klicken Sie auf Weiter.
    3. Klicken Sie auf Erstellen und ausführen.
    Sie kehren zur Seite Distribution Service zurück, auf der Sie den erstellten Pfad prüfen können.
  6. Prüfen Sie in der Deployment-Konsole für das Ziel MySQL die Receiver path, die als Ergebnis von Distribution Path erstellt wurde:
    1. Klicken Sie auf Receiver Service.
    2. Prüfen Sie die Details von Distribution Path.

Aufgabe 5: Replicat für Initial Load hinzufügen

  1. In the target MySQL deployment console, add a Checkpoint table.
    1. Wählen Sie im Navigationsmenü DB-Verbindungen, die Zieldatenbank HeatWave, Checkpoints aus.
    2. Klicken Sie auf Checkpoint hinzufügen (Plussymbol).
    3. Geben Sie im Bereich Checkpoint unter Schematabelle SRCMIRROR_OCIGGLL.CHECKTABLE ein.
    4. Klicken Sie auf Weiterleiten.
  2. Fügen Sie die Initial Load Replicat hinzu.
    1. Klicken Sie im Navigationsmenü auf Replicats und dann auf Replicat hinzufügen (Plussymbol).
    2. Füllen Sie die Felder Replicat auf der Seite Replicats wie folgt aus:
      1. Gehen Sie auf der Seite "Informationen" unter Replicat wie folgt vor:
        1. Wählen Sie unter Typ Replicat die Option Parallel oder Koordiniert aus.
        2. Geben Sie unter Prozessname einen Namen wie RIL ein.
        3. Klicken Sie auf Weiter.
      2. Gehen Sie auf der Seite "Optionen" unter Replicat wie folgt vor:
        1. Geben Sie unter Replicat-Trailname den Namen des Trails aus Aufgabe 2 (I1) ein.
        2. Wählen Sie unter Zielzugangsdaten die Domain und den Alias für die Datenbankverbindung HeatWave aus.
        3. Wählen Sie unter Tabelle Checkpoint die Tabelle Checkpoint aus, die Sie in Schritt 1 erstellt haben.
        4. Klicken Sie auf Weiter.
      3. Fügen Sie auf der Seite "Parameterdatei" das folgende Mapping hinzu:
        MAP src_ociggll.*, TARGET SRCMIRROR_OCIGGLL.*;
    3. Klicken Sie auf Erstellen und ausführen.

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

  3. Prüfen Sie die Initial Load:
    1. Stellen Sie in Cloud Shell eine Verbindung zum VCN und Subnetz her, das von der HeatWave-Instanz verwendet wird.
    2. Führen Sie nach der Verbindung den folgenden Befehl aus:
      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 von Initial Load in die Zieldatenbanktabellen geladen wurden.

Aufgabe 6: Distribution Path für Change Data Capture erstellen

Gehen Sie folgendermaßen vor, um eine Distribution Path für Change Data Capture zu erstellen:
  1. Klicken Sie in der Deployment-Konsole für die Quelle PostgreSQL auf Vertriebsservice.
  2. Klicken Sie auf Distribution Path hinzufügen.
  3. Füllen Sie das Formular "Pfad hinzufügen" wie folgt aus:
    1. Auf der Seite "Pfadinformationen":
      1. Geben Sie unter Pfadname einen Namen ein.
      2. Klicken Sie auf Weiter.
    2. Gehen Sie auf der Seite {\b Source Options} wie folgt vor:
      1. Wählen Sie unter Quelle Extract die Option Change Data Capture Extract (ECDC)) aus.
      2. Wählen Sie unter Trailname die Traildatei Change Data Capture (C1) aus.
      3. Klicken Sie auf 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 (diese finden Sie auf der Seite mit den Deployment-Details, ohne https:// oder abschließende Schrägstriche).
      3. Geben Sie unter Portnummer die Nummer 443 ein.
      4. Geben Sie unter Trailname C1 ein.
      5. Wählen Sie unter Zielauthentifizierungsmethode die Option UserID Alias aus.
      6. Geben Sie unter Domain den Domainnamen ein.
      7. Geben Sie unter Alias den Alias ein.
    4. Klicken Sie auf Pfad erstellen und ausführen.
  4. Klicken Sie in der Deployment-Konsole Ziel MySQL auf Service empfangen, und prüfen Sie den erstellten Receiver Path.

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

Führen Sie Updates für die Quelldatenbank PostgreSQL aus, um die Replikation in der HeatWave-Zieldatenbank zu prüfen.
  1. Fügen Sie Replicat hinzu:
    1. Klicken Sie in der Deployment-Konsole Ziel auf Administration Service, und klicken Sie dann im Navigationsmenü auf Replicats.
    2. Klicken Sie auf der Seite Replicats auf Replicat hinzufügen (Plussymbol), und füllen Sie das Formular "Replicat hinzufügen" wie folgt aus:
      • Gehen Sie auf der Seite "Informationen" unter Replicat wie folgt vor:
        1. Wählen Sie unter Replicat type die Option Nonintegrated Replicat aus.
        2. Geben Sie unter Prozessname einen Namen wie RCDC ein.
        3. Klicken Sie auf Weiter.
      • Gehen Sie auf der Seite "Optionen" unter Replicat wie folgt vor:
        1. Geben Sie unter Replicat Trailname den Namen des Trail aus Aufgabe 3 (C1) ein.
        2. Wählen Sie unter Zielzugangsdaten die Domain und den Alias für die Verbindung HeatWave aus.
        3. Wählen Sie unter Checkpoint-Tabelle die Checkpoint-Tabelle aus.
    3. Ersetzen Sie auf der Seite Replicat-Parameter MAP *.*, TARGET *.*; durch die folgende Zuordnung:
      MAP src_ociggll.*, TARGET SRCMIRROR_OCIGGLL.*;
    4. Klicken Sie auf Erstellen und ausführen.

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

  2. Prüfen Sie Change Data Capture:
    1. Führen Sie Updates für die Quelldatenbank PostgreSQL aus, um die Replikation in der Zieldatenbank HeatWave zu prüfen. Führen Sie das folgende Skript aus, um Einfügen in die Datenbank PostgreSQL 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 Deployment-Konsole der Quelle PostgreSQL den Namen Change Data Capture Extract (ECDC) aus, klicken Sie auf Details, und klicken Sie auf Statistiken. Stellen Sie sicher, dass src_ociggll.src_city über 10 Insert-Vorgänge verfügt.

      Hinweis:

      Wenn die Extract keine Einfügungen erfasst hat, starten Sie die ECDC Extract neu.
    3. Wählen Sie im Deployment Ziel MySQL die Option RCDC Replicat aus, und prüfen Sie die Details und Statistiken, um die Anzahl der Einfügungen zu prüfen.

Aufgabe 8: Prozesse überwachen und verwalten

  1. Überwachen Sie die Performance.
  2. Verwalten Sie die Traildateien.