Hinweis:

Migration zu Oracle Cloud Infrastructure Database mit PostgreSQL mit OCI Object Storage und Rclone

Einführung

Oracle Cloud Infrastructure Database mit PostgreSQL (OCI Database with PostgreSQL) ist ein vollständig verwalteter Service, der den Zeitaufwand für Routineaufgaben wie Patching, Backups und Speicherverwaltung reduziert. Zu den wichtigsten Features gehören eine datenbankoptimierte Speicherarchitektur, mit der die SQL-Transaktionsverarbeitungs-Engine von der Speicherebene entkoppelt wird, mehrere Replikate zur Steigerung der Benutzeraktivität, regionsübergreifende Backupkopien und vollständige Kompatibilität mit der Open-Source-Datenbank PostgreSQL.

OCI Database with PostgreSQL-Architektur

Hinweis: PostgreSQL-Versionen 14 und 15 werden unterstützt (Stand Juni 2025).

OCI Object Storage bietet skalierbaren, dauerhaften und kostengünstigen Speicher für alle Datentypen. In diesem Tutorial wird die PostgreSQL-Dumpdatei gespeichert.

Rclone ist ein Open-Source-Befehlszeilenprogramm zum Verwalten oder Übertragen von Dateien auf Cloud-Speichern.

In this tutorial, we will discuss how to effectively migrate data from an on-premises PostgreSQL database to OCI Database with PostgreSQL. Wir verwenden die Utilitys pg_dump und pg_restore, die kostengünstigen OCI Object Storage und Rclone für schnellen, mehrteiligen Upload und das Mount-Feature nutzen.

Ziele

Voraussetzungen

Hinweis: OCI Database with PostgreSQL ist in OCI Always Free Tier nicht verfügbar.

Vereinfachte Architektur

Aufgabe 1: OCI-API-Schlüsselbenutzerzugangsdaten erstellen

  1. Melden Sie sich bei der OCI-Konsole an, klicken Sie auf das Profilmenü Symbol für Profilmenü, und wählen Sie Mein Profil aus.

  2. Klicken Sie in Ressourcen auf API-Schlüssel

  3. Klicken Sie oben links in der API-Schlüsselliste auf API-Key hinzufügen.

  4. Klicken Sie auf Private Key downloaden, und speichern Sie den Schlüssel im Verzeichnis .oci. In den meisten Fällen müssen Sie den Public Key nicht herunterladen.

  5. Klicken Sie auf Hinzufügen.

Der Schlüssel wird hinzugefügt, und die Vorschau für Konfigurationsdatei wird angezeigt. Das Datei-Snippet enthält erforderliche Parameter und Werte, die zum Erstellen der Konfigurationsdatei erforderlich sind.

Weitere Informationen finden Sie unter Erforderliche Schlüssel und OCIDs.

Aufgabe 2: PostgreSQL-Daten mit pg_dump exportieren

Verwenden Sie auf Ihrem On-Premise-Host pg_dump, um die Datenbank PostgreSQL zu exportieren.

pg_dump -U your_username -h your_host -p your_port -F c -f /path/to/output.dump your-database-name

Aufgabe 3: Daten mit Rclone installieren, konfigurieren und übertragen

  1. Installieren Sie rclone auf Ihrem On-Premise-Host.

    sudo -v ; curl https://rclone.org/install.sh | sudo bash
    
  2. Führen Sie den folgenden Befehl aus, um rclone zu konfigurieren.

    rclone config
    

    Weitere Informationen zum Konfigurieren der OCI Object Storage-Verbindung finden Sie in der Dokumentation zum Klonen. Verwenden Sie Option 2: einen OCI-Benutzer und einen API-Schlüssel für die Authentifizierung (erstellt in Aufgabe 1).

  3. Verwenden Sie den Multipart-Upload mit rclone, um die exportierte Datenbank in einen OCI Object Storage-Bucket zu kopieren. Beispiel:

    rclone --progress  --oos-no-check-bucket --fast-list --no-traverse --transfers 8 --oos-chunk-size 10M --oos-upload-concurrency 10 --checkers 10  copy <source> <dest>
    

    Beispielbefehl und eine Ausgabe:

    	rclone --progress  --oos-no-check-bucket --fast-list --no-traverse --transfers 8 --oos-chunk-size 10M --oos-upload-concurrency 10 --checkers 10  copy output.dump OCI:bucket_db-dump
    	Transferred:        4.500 KiB / 4.500 KiB, 100%, 0 B/s, ETA -
    	Transferred:            1 / 1, 100%
    	Elapsed time:         0.0s
    
    

    For more information, see Copy Data to Oracle Cloud Using Rclone to Build Insights in Oracle Analytics Cloud.

Aufgabe 4: OCI Object Storage mit Rclone mounten

  1. Installieren Sie auf Ihrem OCI Compute-Bastionhost die PostgreSQL-Tools.

    dnf install postgresql
    

    OCI Database with PostgreSQL unterstützt die Versionen 14 und 15. Installieren Sie daher die PostgreSQL-Tools entsprechend.

    sudo dnf module reset postgresql
    sudo dnf module enable postgresql:15
    sudo dnf install postgresql
    
  2. Installieren und konfigurieren Sie rclone auf Ihrem Bastionhost - wiederholen Sie Aufgabe 3, Schritt 2.

  3. Mounten Sie den Bucket mit den in Aufgabe 3 kopierten Daten. Beispiel: /mnt/oci.

    rclone mount OCI:bucket_db-dump /mnt/oci --vfs-cache-mode full --log-file /home/opc/rclone.log --config ~/.config/rclone/rclone.conf --log-level DEBUG --daemon --attr-timeout 1s
    
  4. Prüfen Sie die Dateien in Ihrem gemounteten OCI Object Storage.

    ls /mnt/oci
    

Aufgabe 5: OCI Database with PostgreSQL mit pg_restore wiederherstellen

Stellen Sie Ihre OCI Database with PostgreSQL-Datenbank mit parallelen Jobs im Hintergrund als Daemon-Prozess unter Verwendung des gemounteten Dateisystems wieder her.

nohup pg_restore -d test -h <OCI PostgreSQL hostname or IP> -p 5432 -U <dbuser> -v -c -j 10 -F c /mnt/oci/output.dump >import.log 2>&1

Die Zieldatenbank (test in diesem Beispiel) muss bereits vorhanden sein, bevor Sie pg_restore ausführen. So erstellen Sie die Datenbank im Voraus:

createdb -U postgres -h localhost -p 5432 test

Sie können auch -verbose für Fortschrittsdetails oder -clean hinzufügen, um Objekte zu löschen, bevor Sie sie neu erstellen.

Aufgabe 6: Wiederhergestellte Datenbank prüfen

Melden Sie sich mit psql bei OCI Database with PostgreSQL an, und prüfen Sie, ob die wiederhergestellten Daten vollständig sind.

psql -h <OCI PostgreSQL hostname or IP> -p 5432 -U <dbuser> -d test

Jetzt können Sie mit SQL Select-Anweisungen die Anzahl der Zeilen in Tabellen prüfen.

Bestätigungen

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.