DMP-Datei importieren

Auf dieser Seite wird beschrieben, wie Sie eine DMP-Datei, die mit dem Tool pg_dump erstellt wurde, im Format custom oder directory in eine AlloyDB-Datenbank importieren.

Informationen zum Importieren einer mit dem Tool pg_dump erstellten Datei im Format plain finden Sie unter SQL-Datei importieren.

Der Import umfasst die folgenden Aufgaben:

  1. Laden Sie die DMP-Datei in einen Cloud Storage-Bucket hoch.

  2. Bereiten Sie einen Clienthost vor, um den Importvorgang auszuführen.

  3. Importieren Sie die DMP-Datei in die Datenbank.

  4. Bereinigen Sie die Ressourcen, die zum Ausführen des Verfahrens erstellt wurden.

Hinweise

  • Sie benötigen die grundlegende IAM-Rolle „Inhaber“ (roles/owner) oder „Bearbeiter“ (roles/editor) im Google Cloud Projekt, das Sie verwenden, oder eine der folgenden vordefinierten IAM-Rollen:
    • AlloyDB Admin (roles/alloydb.admin) oder AlloyDB Viewer (roles/alloydb.viewer)
    • Storage-Administrator (roles/storage.admin)
    • Compute-Instanzadministrator (Version 1) (roles/compute.instanceAdmin.v1)

DMP-Datei hochladen

Zum Hochladen einer DMP-Datei erstellen Sie einen Cloud Storage-Bucket und laden dann die DMP-Datei in diesen Bucket hoch.

  1. Erstellen Sie einen regionalen Storage-Bucket der Klasse „Standard Storage“ in dem Projekt und der Region, in dem bzw. der sich Ihre AlloyDB-Datenbank befindet.

  2. Laden Sie die DMP-Datei in den von Ihnen erstellten Storage-Bucket hoch.

Clienthost vorbereiten

Um einen Clienthost für den Importvorgang vorzubereiten, erstellen Sie eine Compute Engine-VM, die eine Verbindung zur AlloyDB-Primärinstanz herstellen kann, in der sich Ihre Datenbank befindet. Installieren Sie dann das pg_restore-Tool und die Google Cloud CLI auf dieser VM.

  1. Folgen Sie der Anleitung unter psql-Client mit einer Instanz verbinden, um eine Compute Engine-VM mit der richtigen Konnektivität und dem installierten pg_restore-Tool zu erstellen. Achten Sie beim Ausführen dieser Anleitung darauf, dass Sie der Compute Engine-VM genügend lokalen Speicherplatz zuweisen, um die DMP-Datei, die Sie importieren, aufzunehmen.

  2. Installieren Sie die gcloud CLI, um Befehlszeilenzugriff auf die DMP-Datei im Cloud Storage-Bucket zu erhalten.

DMP-Datei importieren

Wenn Sie die DMP-Datei importieren möchten, rufen Sie die IP-Adresse der primären AlloyDB-Instanz ab, in der sich Ihre Datenbank befindet, und verwenden Sie dann das Tool pg_restore, um die Datei in die Datenbank zu importieren.

  1. Rufen Sie die IP-Adresse der primären AlloyDB-Instanz ab, in der sich Ihre Datenbank befindet, indem Sie die zugehörigen Details aufrufen.
  2. Stellen Sie eine SSH-Verbindung zur Compute Engine-VM her.

    Console

    1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.

      Zu „VM-Instanzen“

    2. Klicken Sie in der Liste der VM-Instanzen in der Zeile der von Ihnen erstellten Instanz auf SSH.

      SSH-Schaltfläche neben dem Instanznamen.

    gcloud

    Verwenden Sie den Befehl gcloud compute ssh, um eine Verbindung zur erstellten Instanz herzustellen.

    gcloud compute ssh --project=PROJECT_ID --zone=ZONE VM_NAME

    Ersetzen Sie Folgendes:

    • PROJECT_ID: Die ID des Projekts, das die Instanz enthält.
    • ZONE ist der Name der Zone, in der sich die Instanz befindet.
    • VM_NAME: Name der Instanz
  3. Kopieren Sie die DMP-Datei in das lokale Dateisystem des Clienthosts:
    gcloud storage cp gs://BUCKET_NAME/DMP_FILE_NAME .
  4. Führen Sie den folgenden Befehl aus, um eine TOC-Datei zu erstellen, in der alle EXTENSION-Anweisungen auskommentiert sind:
    pg_restore \
    -l DMP_FILE_NAME | sed -E 's/(.* EXTENSION )/; \1/g' > TOC_FILE_NAME
    • DMP_FILE_NAME: Die DMP-Datei im lokalen Dateisystem.
    • TOC_FILE_NAME: Geben Sie einen Dateinamen für die Inhaltsverzeichnisdatei an, die im lokalen Dateisystem erstellt werden soll.
  5. DMP-Datei importieren:
    pg_restore -h IP_ADDRESS -U postgres \
      -d DB_NAME \
      -L TOC_FILE_NAME \
      DMP_FILE_NAME
    
    • IP_ADDRESS: Die IP-Adresse der primären Instanz.
    • DB_NAME: Der Name der Datenbank, in die importiert werden soll.
    • TOC_FILE_NAME: Die TOC-Datei, die Sie im vorherigen Schritt erstellt haben.
    • DMP_FILE_NAME: Die DMP-Datei.

    Der Befehl pg_restore bietet mehrere zusätzliche Optionen zum Steuern des Datenimports.

Ressourcen bereinigen

Nachdem Sie die DMP-Datei erfolgreich importiert haben, können Sie den Cloud Storage-Bucket und die Compute Engine-VM löschen, die Sie während des Importvorgangs verwendet haben.