OCI Database with PostgreSQL bereitstellen und mit OCI von On-Premises mit minimaler Ausfallzeit migrieren GoldenGate

Einführung

Oracle Cloud Infrastructure Database mit PostgreSQL (OCI Database with PostgreSQL) ist ein vollständig verwalteter PostgreSQL-kompatibler Service, der 3-mal höhere Performance durch datenbankoptimierten Speicher bietet, halbe Kosten im Vergleich zu Amazon Web Service (AWS), automatisierte Backups, High Availability, geplante Wartung, dynamische Speicherskalierung, vertikale Skalierung usw. bietet.

Beispiel: Geschäftskontinuität

Der Service OCI Database with PostgreSQL bietet ein Service Level Agreement (SLA) mit 99,99% Betriebszeit, ein Recovery Time Objective (RTO) mit weniger als 2 Minuten für Datenbanksysteme mit mehreren Knoten und ein Recovery Point Objective (RPO) mit 0 ohne Datenverlust. Bei Datenbanksystemen mit einem Knoten in einzelnen Availability-Domains (AD)-Regionen bietet der Service ein SLA für 99,9% Betriebszeit, ein RTO von weniger als 20 Minuten und ein RPO von 0.

OCI Database with PostgreSQL nutzt OCI Block Volumes, um Benutzerdaten zu speichern. Es gelten also die gleichen Dauerhaftigkeits-, Sicherheits- und Leistungsgarantien. Weitere Informationen finden Sie unter Überblick über OCI Database with PostgreSQL und First Principles: PostgreSQL für die Cloud optimieren.

Bildbeschreibung hier eingeben

Dieses Tutorial konzentriert sich auf die Migration von einer On-Premises-Datenbank PostgreSQL zu OCI Database with PostgreSQL mit OCI GoldenGate mit minimaler Ausfallzeit.

Umgebungsdetails:

  On-Premise-Quelle OCI-Ziel
DB-Name product_inventory Zieldatenbank
Benutzer Auftragsmanager admin
Schema data_analyze data_analyze
DB-Version 15,12 15,6

Ziele

  1. OCI Database with PostgreSQL-Datenbanksystem erstellen

  2. OCI GoldenGate-Deployment bereitstellen.

  3. On-Premise-Datenbank und OCI-Datenbankverbindung beim Deployment erstellen und Verbindungen zuweisen.

  4. Quelldatenbankserver und -datenbank vorbereiten

  5. Extrakt für erstmaliges Laden erstellen.

  6. Sichern Sie Metadaten der Quelldatenbank mit dem Utility pg_dump.

  7. Importieren Sie Metadaten in OCI Database with PostgreSQL.

  8. Erstellen Sie das anfängliche Laden von Replicat mit der Traildatei.

  9. Erstellen Sie einen Online- oder Change Data Capture-(CDC-)Extract, der zur ersten Logsequenznummer (LSN) für die Erfassung wechselt.

  10. Online-Replicat mit CDC-Extrakt-Traildatei erstellen.

Aufgabe 1: OCI Database with PostgreSQL-Datenbanksystem bereitstellen

In diesen Aufgaben wird erläutert, wie Sie ein Datenbanksystem erstellen. Vor dem Provisioning sind die folgenden Policys erforderlich. Weitere Informationen finden Sie unter Datenbanksystem verwalten.

  1. Fügen Sie die folgenden Oracle Cloud Infrastructure Identity and Access Management-(IAM-)Policys hinzu.

    Allow group <postgresql-admin-group> to read compartments in tenancy
    Allow group <postgresql-admin-group> to manage postgres-db-systems in [ tenancy | compartment <compartment_name> | compartment id <compartment_OCID> ]
    Allow group <postgresql-admin-group> to manage postgres-backups in [ tenancy | compartment <compartment_name> | compartment id <compartment_OCID> ]
    Allow group <postgresql-admin-group> to read postgres-work-requests in [ tenancy | compartment <compartment_name> | compartment id <compartment_OCID> ]
    Allow group <postgresql-admin-group> to manage postgres-configuration in [ tenancy | compartment <compartment_name> | compartment id <compartment_OCID> ]
    Allow group <postgresql-admin-group> to manage virtual-network-family in [ tenancy | compartment <compartment_name> | compartment id <compartment_OCID> ]
    Allow group <postgresql-admin-group> to read secret-family in [ tenancy | compartment <compartment_name> | compartment id <compartment_OCID> ]
    Allow group <postgresql-admin-group> to read vaults in [ tenancy | compartment <compartment_name> | compartment id <compartment_OCID> ]
    Allow group <postgresql-admin-group> to read metrics in [ tenancy | compartment <compartment_name> | compartment id <compartment_OCID> ]
    Allow group <postgresql-admin-group> to use tag-namespaces in tenancy
    
  2. Erstellen Sie einen Vault für das Datenbankadministratorkennwort, oder wählen Sie ihn aus. Weitere Informationen finden Sie unter Vaults verwalten.

  3. Erstellen Sie einen Schlüssel für das Datenbankkennwort. Weitere Informationen finden Sie unter Schlüssel verwalten.

  4. Erstellen Sie ein Secret für das Datenbankkennwort. Weitere Informationen finden Sie unter Vault-Secrets verwalten.

  5. Melden Sie sich bei der OCI-Konsole an, navigieren Sie zu Datenbank, PostgreSQL, DB-Systeme, Neues Datenbanksystem erstellen, und klicken Sie auf Weiter.

    Bildbeschreibung hier eingeben

    Bildbeschreibung hier eingeben

  6. Wählen Sie Hardwarekonfiguration.

    Bildbeschreibung hier eingeben

  7. Wählen Sie Virtuelles Cloud-Netzwerk und Subnetz aus, und geben Sie Zugangsdaten des Datenbanksystemadministrators ein. In diesem Beispiel lautet der Name Username admin.

    Bildbeschreibung hier eingeben

    Sobald die Erstellung abgeschlossen ist, zeigt das Datenbanksystem den Status Active an.

    Bildbeschreibung hier eingeben

  8. Führen Sie den folgenden Befehl aus, um die Verbindung zu OCI Database with PostgreSQL vom Compute Node zu prüfen.

    -bash-4.2$ psql "sslmode=verify-full sslrootcert=c.pub host=<OCI DB server ip address>  user=admin dbname=postgres"
    Password for user admin:
    psql (15.12, server 15.6)
    SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, compression: off)
    Type "help" for help.
    postgres=>
    

Aufgabe 2: OCI GoldenGate-Deployment für Migration erstellen

  1. Navigieren Sie zur OCI-Konsole, navigieren Sie zu Oracle Database, GoldenGate, Deployments, und klicken Sie auf Deployment erstellen.

  2. Geben Sie die erforderlichen Informationen in die folgenden Bilder ein, und wählen Sie PostgreSQL als Technologie auswählen aus.

    Bildbeschreibung hier eingeben

    Bildbeschreibung hier eingeben

  3. Verwenden Sie unter Deployment konfigurieren oggadmin als Benutzername, um sich als Administrator bei der OCI-GoldenGate-Konsole anzumelden.

    Bildbeschreibung hier eingeben

    Bildbeschreibung hier eingeben

  4. Klicken Sie auf Erstellen, um die Erstellung und das Deployment zu starten. Sobald der Vorgang erfolgreich abgeschlossen wurde, wird der Status Active angezeigt.

    Bildbeschreibung hier eingeben

Aufgabe 3: On-Premise-Datenbankverbindung, OCI-Datenbankverbindungen beim Deployment erstellen und Verbindungen zuweisen

OCI GoldenGate erfordert sowohl die Quell- als auch die Zieldatenbankverbindung und weist dem Deployment beide Verbindungen zu.

  1. Quelldatenbankverbindung erstellen.

    1. Klicken Sie auf den Deployment-Namen (PG_Mig_deployment), wählen Sie Verbindungen aus, und klicken Sie auf Verbindung erstellen. Geben Sie die erforderlichen Informationen wie in den folgenden Bildern dargestellt ein.

      Bildbeschreibung hier eingeben

    2. Wählen Sie Type als PostgreSQL Server, Security Protocol als Plain aus, und klicken Sie auf Create.

      Bildbeschreibung hier eingeben

  2. Zieldatenbankverbindung erstellen.

    1. Klicken Sie auf den Deployment-Namen, wählen Sie Verbindungen aus, und klicken Sie auf Verbindung erstellen. Geben Sie die erforderlichen Informationen wie in den folgenden Bildern dargestellt ein.

      Bildbeschreibung hier eingeben

    2. Wählen Sie Typ als OCI PostgreSQL aus.

      Bildbeschreibung hier eingeben

    3. Wählen Sie Sicherheitsprotokoll als TLS und SSL-Modus als Erforderlich.

      Bildbeschreibung hier eingeben

  3. Weisen Sie die Datenbankverbindungen dem Deployment zu.

    1. Gehen Sie zu Deployments, klicken Sie auf den Deployment-Namen (PG_Mig_deployment), wählen Sie Verbindungen zuweisen aus, und klicken Sie auf Verbindung zuweisen.

      Bildbeschreibung hier eingeben

    2. Geben Sie die erforderlichen Informationen wie in den folgenden Bildern dargestellt ein.

      Bildbeschreibung hier eingeben

      Nach Abschluss der Verbindung wird der Status Active angezeigt.

      Bildbeschreibung hier eingeben

Aufgabe 4: Quelldatenbankserver und -datenbank vorbereiten

  1. Installieren Sie das Package postgresql15-contrib.

    OCI GoldenGate erfordert das Package postgresql14-contrib auf dem Quelldatenbankserver, um aus der PostgreSQL-Serverdatenbank zu extrahieren. Package kann mit dem Befehl sudo yum install postgresql15-contrib installiert werden (Quelldatenbankversion ist 15).

    Hinweis: Es wird empfohlen, dass die Version der Clientbibliotheken mit der Datenbankversion PostgreSQL übereinstimmt. Clientversionen unter 10 werden nicht unterstützt.

  2. Bereiten Sie die Erstellung von Datenbankbenutzern in der Quelldatenbank und den erforderlichen Berechtigungen vor.

    product_inventory=# create user  ggreplication with password 'abc1234';
    ERROR:  role "ggreplication" already exists
    product_inventory=#
    product_inventory=#  select current_database();
     current_database
    -------------------
     product_inventory
    (1 row)
    
    product_inventory=# GRANT CONNECT ON DATABASE product_inventory TO ggreplication;
    GRANT
    product_inventory=# ALTER USER ggreplication WITH 	REPLICATION;
    ALTER ROLE
    product_inventory=# ALTER USER ggreplication WITH SUPERUSER;
    ALTER ROLE
    product_inventory=# GRANT USAGE ON SCHEMA ordermanager TO ggreplication;
    GRANT
    product_inventory=# GRANT USAGE ON SCHEMA data_analyze TO ggreplication;
    GRANT
    product_inventory=# GRANT SELECT ON ALL TABLES IN SCHEMA ordermanager TO ggreplication;
    GRANT
    product_inventory=# GRANT SELECT ON ALL TABLES IN SCHEMA data_analyze TO ggreplication;
    GRANT
    product_inventory=# GRANT CREATE ON DATABASE product_inventory  TO ggreplication;
    GRANT
    product_inventory=# GRANT CREATE, USAGE ON SCHEMA ordermanager TO ggreplication;
    GRANT
    product_inventory=# GRANT CREATE, USAGE ON SCHEMA data_analyze TO ggreplication;
    GRANT
    product_inventory=# GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA ordermanager TO ggreplication;
    GRANT
    product_inventory=# GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA data_analyze TO ggreplication;
    GRANT
    product_inventory=# GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA ordermanager TO ggreplication;
    GRANT
    product_inventory=# GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA data_analyze TO ggreplication;
    GRANT
    product_inventory=#
    

    Weitere Informationen zum spezifischen Zweck der einzelnen Berechtigungen finden Sie unter Datenbankbenutzer und -berechtigungen für PostgreSQL vorbereiten.

  3. Im Folgenden werden die Parameter in der Datenbankkonfigurationsdatei PostgreSQL aufgeführt. Der Speicherort der Konfigurationsdatei ist $PGDATA/postgresql.conf.

    wal_level = logical   **# set to logical for Capture**
    
    max_replication_slots = 1 **# max number of replication and one slot for Extract/Client**
    
    max_wal_senders = 1 **# one sender per max repl slot**
    
    track_commit_timestamp = on **# optional, correlates tx commit time**  with begin tx log record (useful for  # timestamp-	based positioning)
    

    Hinweis:

    • Nachdem Sie eine der oben genannten Änderungen vorgenommen haben, starten Sie die Datenbank neu.
    • Die OCI-GoldenGate-Replikation unterstützte PostgreSQL-Datentypen und die Beschränkung der unterstützten Datentypen, unterstützten Objekte und Vorgänge können aus der Dokumentation geprüft werden. Weitere Informationen finden Sie unter Datenbanken vorbereiten.

Aufgabe 5: Extrakt für erstmaliges Laden erstellen

Sie müssen den Extract für das erstmalige Laden erstellen. Dadurch wird die LSN im Berichtsabschnitt "OCI GoldenGate Extract" bereitgestellt.

  1. Navigieren Sie zur OCI-Konsole, navigieren Sie zu Datenbank, GoldenGate und Deployments, und klicken Sie auf den in Aufgabe 2 erstellten Deployment-Namen.

    Bildbeschreibung hier eingeben

  2. Klicken Sie auf Konsole starten, und geben Sie die Zugangsdaten ein.

    Bildbeschreibung hier eingeben

  3. Gehen Sie zu DB-Verbindungen, und zeigen Sie dabei die zugewiesene Quelle und die OCI Database with PostgreSQL-Datenbankverbindungen an, und prüfen Sie die Konnektivitätsprüfung.

    Bildbeschreibung hier eingeben

    Erfolgreiche Verbindung ist gut, um den ersten Ladevorgang in dieser Phase zu starten.

  4. Navigieren Sie zur OCI-GoldenGate-Konsole, navigieren Sie zu Extrahieren, und klicken Sie auf +.

    Bildbeschreibung hier eingeben

    Bildbeschreibung hier eingeben

    Bildbeschreibung hier eingeben

    Nachdem der Extract zum ersten Laden gestoppt wurde, prüfen Sie die OCI-Berichtsdateien GoldenGate, notieren Sie sich die LSN-Details, und halten Sie sie für die Verwendung in Aufgabe 9 bereit.

    Bildbeschreibung hier eingeben

Aufgabe 6: Metadaten der Quelldatenbank mit dem Befehl pg_dump sichern

Der Befehl pg_dump wird nur zum Dump der Metadaten der Quelldatenbank product_inventory verwendet.

pg_dump -h localhost  -U ggreplication -d product_inventory -F c -v -s --file=/tmp/exp_source_db.dump

Aufgabe 7: Metadaten mit PostgreSQLOCI Database with PostgreSQL in OCI Database importieren

Verwenden Sie die Binärdatei pg_restore, um sie mit PostgreSQLOCI Database with PostgreSQL in die Ziel-OCI-Datenbank zu importieren. Hier lautet der OCI-Datenbankname targetdb.

Führen Sie den Restore-Befehl auf dem OCI Compute-Knoten aus, auf dem der Verbindungsbefehl in Aufgabe 1.8 erfolgreich ausgeführt wurde.

pg_restore -h <OCI IP address>  -U admin -d targetdb  -v exp_source_db.dump
postgres=> \c targetdb
psql (15.12, server 15.6)
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, compression: off)
You are now connected to database "targetdb" as user "admin".
targetdb=> \dn
         List of schemas
     Name     |       Owner
--------------+-------------------
 data_analyze | admin
 ordermanager | admin
 public       | pg_database_owner
(3 rows)

Hinweis: Mit der Abfrage select table_name,table_schema from information_schema.tables where table_type='BASE TABLE' and table_schema in ('data_analyze','ordermanager') order by table_schema,table_name; können Sie die Tabellennamen nach dem Metadatenimport auf dem Ziel prüfen.

Aufgabe 8: Replicat zum erstmaligen Laden mit Traildatei erstellen

  1. Navigieren Sie zur OCI-GoldenGate-Konsole, navigieren Sie zu Replikate, und klicken Sie auf +, um Replicat zu erstellen.

    Bildbeschreibung hier eingeben

    Bildbeschreibung hier eingeben

    Bildbeschreibung hier eingeben

  2. Klicken Sie auf Erstellen und ausführen, um das erstmalige Laden von Replicate zu starten. Prüfen Sie nach Abschluss die Anzahl der Tabellenzeilen.

  3. Gehen Sie zu Berichte, und prüfen Sie das erstmalige Laden von Replicate-Berichten. Anzahl der wenigen Tabellenzeilen in beiden Datenbanken prüfen

    Bildbeschreibung hier eingeben

    Bildbeschreibung hier eingeben

Aufgabe 9: CDC-Extraktion erstellen, die sich in die erste LSN für die Erfassung ändert

"CDC-Extraktion" ist ein Online-Extrakt, mit dem laufende Änderungen an der vorhandenen Datenbank erfasst werden. CDC-Extraktion beginnt mit der Erfassung anhand der erfassten LSN-Nummer.

  1. Navigieren Sie zur OCI-GoldenGate-Konsole, navigieren Sie zu Extracts, klicken Sie auf +, und geben Sie die erforderlichen Informationen ein, wie in den folgenden Bildern dargestellt.

    Bildbeschreibung hier eingeben

    Bildbeschreibung hier eingeben

    Bildbeschreibung hier eingeben

    Bildbeschreibung hier eingeben

  2. Nachdem CDC registriert und erstellt wurde, klicken Sie auf Mit Optionen beginnen, um das Lesen aus einer bestimmten LSN anzuweisen, die in Aufgabe 5 erfasst wird.

    Bildbeschreibung hier eingeben

    Bildbeschreibung hier eingeben

    Nach einiger Zeit können wir eine Verzögerung von null Sekunden bei CDC Extract sehen.

    Bildbeschreibung hier eingeben

Aufgabe 10: Online-Replikat mit CDC-Extrakttraildatei erstellen

  1. Gehen Sie zur OCI-GoldenGate-Konsole, navigieren Sie zu Replikate, klicken Sie auf +, und geben Sie die erforderlichen Informationen ein, wie in den folgenden Bildern dargestellt.

    Bildbeschreibung hier eingeben

    Bildbeschreibung hier eingeben

  2. Klicken Sie auf Create and Run, nachdem Sie den Befehl MAP geändert haben.

    Bildbeschreibung hier eingeben

    Wir können eine Verzögerung von null Sekunden bei Online Replicat nach einiger Zeit sehen.

    Bildbeschreibung hier eingeben

Verifizierung

Führen Sie die folgenden Abfragen aus, um sie in die Quelltabelle einzufügen, die data_analyze.table3 in der Tabelle data_analyze.table3 der Zieldatenbank repliziert.

Bildbeschreibung hier eingeben

Anzahl und Daten der Zielseitenverifizierungstabelle.

Bildbeschreibung hier eingeben

Bestätigung

Weitere Lernressourcen

Sehen Sie sich weitere Übungen zu docs.oracle.com/learn an, oder greifen Sie auf weitere kostenlose Lerninhalte im Oracle Learning YouTube-Kanal zu. Besuchen Sie außerdem education.oracle.com/learning-explorer, um ein Oracle Learning Explorer zu werden.

Die Produktdokumentation finden Sie im Oracle Help Center.