Von Cloud SQL for PostgreSQL zu AlloyDB for PostgreSQL migrieren

Auf dieser Seite wird beschrieben, wie Sie eine Cloud SQL for PostgreSQL-Instanz migrieren, indem Sie ein Cloud SQL-Sicherungselement in einen kopieren, der im Rahmen eines kostenlosen Testzeitraumsverfügbar ist. Wenn Sie ein Cloud SQL-Sicherungselement in einen AlloyDB-Cluster kopieren, können Sie Daten schnell in Cloud SQL for PostgreSQL laden und dort analysieren oder zu AlloyDB migrieren.

Auf dieser Seite wird vorausgesetzt, dass Sie mit Cloud SQL vertraut sind. Wenn Sie AlloyDB noch nicht kennen, lesen Sie den Hilfeartikel AlloyDB – Übersicht.

Informationen zum Migrieren Ihrer Daten von Cloud SQL zu AlloyDB mithilfe der kontinuierlichen Datenreplizierung finden Sie unter Database Migration Service für die Migration von PostgreSQL zu AlloyDB.

Folgendes wird nicht unterstützt:

  • Projekt- und regionsübergreifende Wiederherstellungen
  • Instanzen mit vom Kunden verwalteten Verschlüsselungsschlüsseln (CMEK)
  • Instanzen mit IAM-Gruppenauthentifizierung (Identity and Access Management)

Hinweise

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Enable the AlloyDB, Compute Engine, and Service Networking APIs.

    Enable the APIs

  7. Sie benötigen Folgendes:

Erforderliche Rollen

Wenn Sie ein Cloud SQL for PostgreSQL-Sicherungselement in einen AlloyDB-Cluster kopieren möchten, müssen Sie sich die folgenden IAM-Rollen für Ihr Projekt zuweisen:

Cloud SQL-Sicherung in einen AlloyDB-Cluster kopieren

Wenn Sie ein Cloud SQL-Sicherungselement in einenKostenlosen Testzeitraum Kostenlosen Testzeitraum -Cluster wiederhergestellt. Erweiterungsversionen und PostgreSQL-Nebenversionen können sich unterscheiden.

Beim Kopieren einer Sicherung aus Cloud SQL wird nur die Konfiguration der Elemente unterstützt, die im kostenlosen Testcluster von AlloyDB unterstützt werden.

So kopieren Sie eine Cloud SQL-Sicherung in einenkostenlosenAlloyDB-Testcluster:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Cluster auf.

    Zu den Clustern

  2. Wenn Sie noch keinen Cluster bereitgestellt haben, klicken Sie auf Jetzt testen. Wenn Sie bereits einen Cluster haben, klicken Sie auf Daten migrieren.
  3. Klicken Sie auf Aus Cloud SQL-Sicherung kopieren.
  4. Aktivieren Sie auf der Seite Aus Cloud SQL-Sicherung kopieren die erforderlichen APIs. Wenn Sie die APIs bereits aktiviert haben, müssen Sie sie nicht noch einmal aktivieren.
  5. Klicken Sie auf der Seite Clustertyp auswählen auf Cluster für kostenlosen Testzeitraum. Wenn Sie keinen Cluster im kostenlosen Testzeitraum nutzen können, ist dieses Feld ausgegraut.
  6. Klicken Sie auf Clustertyp auswählen.
  7. Wählen Sie die Cloud SQL-Instanz aus, von der Sie eine Kopie erstellen möchten, und klicken Sie dann auf Instanz auswählen. Sie können Cloud SQL-Instanzen filtern.
    Es werden nur kompatible Datenbankversionen angezeigt. Für Repliken gibt es keine Sicherungen und sie werden nicht in der Liste der verfügbaren Instanzen angezeigt.
  8. Wählen Sie die Sicherung aus, aus der Sie Daten importieren möchten, und klicken Sie auf Sicherung auswählen. Auf dieser Seite werden die 1.000 aktuellsten Sicherungen angezeigt.
  9. Geben Sie auf der Seite Kostenlosen Cluster erstellen die Cluster-ID und Ihre Netzwerkinformationen ein.
  10. Klicken Sie auf Jetzt kostenlos testen.

Nach Abschluss des Vorgangs wird automatisch eine primäre Instanz erstellt. Sie sehen einen neuen AlloyDB-Cluster mit den Daten, die aus der von Ihnen ausgewählten Cloud SQL for PostgreSQL-Sicherung kopiert wurden.

Wenn Sie ein Cloud SQL for PostgreSQL-Sicherungselement in einen AlloyDB-Cluster kopieren, werden Datenbankflags und Berechtigungen auf Ressourcenebene nicht automatisch migriert. Nach Abschluss der Kopie müssen Sie diese Flags und Berechtigungen manuell einrichten.

Auf der Seite Kostenlosen Cluster erstellen können Sie nachsehen, welche Datenbank-Flags in Cloud SQL for PostgreSQL in AlloyDB unterstützt werden.

REST API

  1. Rufen Sie die Methode backupsRuns.list auf, um eine Liste der Sicherungen für die Instanz abzurufen, aus der Sie die Sicherung wiederherstellen möchten:
          GET "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/backupRuns"
          

    Ersetzen Sie Folgendes:

    • PROJECT_ID: Projekt-ID.
    • INSTANCE_ID: Instanz-ID.

    JSON-Text anfordern:

          {
            "kind": string,
            "items": [
              {
                object (BackupRun)
              }
            ],
            "nextPageToken": string
          }
          

    Wenn Sie die Anfrage senden möchten, verwenden Sie eine der folgenden Optionen:

    curl (Linux, macOS oder Cloud Shell)

    Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto in der gcloud CLI angemeldet haben. Dazu haben Sie gcloud init oder gcloud auth login ausgeführt oder Cloud Shell verwendet, wodurch Sie automatisch in der gcloud CLI angemeldet werden.

    Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list aus.

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

            curl -X GET \
                   -H "Authorization: Bearer $(gcloud auth print-access-token)" \
                   -H "Content-Type: application/json; charset=utf-8" \
                   "https://sqladmin.googleapis.com//sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/backupRuns"
            

    PowerShell (Windows)

    Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto in der gcloud CLI angemeldet haben. Dazu haben Sie gcloud init oder gcloud auth login ausgeführt oder Cloud Shell verwendet, wodurch Sie automatisch in der gcloud CLI angemeldet werden.

    Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list aus.

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

             $cred = gcloud auth print-access-token
             $headers = @{ "Authorization" = "Bearer $cred" }
             Invoke-WebRequest `
              -Method GET `
              -Headers $headers `
              -ContentType: "application/json; charset=utf-8" `
              -Uri
              "https://sqladmin.googleapis.com//sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/backupRuns"|Select-Object -Expand Content
          

    Sie erhalten eine JSON-Antwort, die in etwa so aussieht:

    Antwort

    Bei Erfolg enthält der Antworttext eine Liste von BackupRun.

    Die API-Antwort gibt eine Liste der Sicherungen für die Instanz als Array zurück, einschließlich "id": string,.

  2. Rufen Sie die Methode restoreFromCloudSQL auf:

            POST https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters:restoreFromCloudSQL
          

    Ersetzen Sie Folgendes:

    • PROJECT_ID: Projekt-ID.
    • REGION: Die Region, in der der AlloyDB-Cluster bereitgestellt wird.

    JSON-Text anfordern:

          {
            "clusterId": string,
            "cluster": {
              "databaseVersion": "POSTGRES_14/POSTGRES_15/POSTGRES_16",
              "subscriptionType": "TRIAL"
            },
            // Union field source can be only one of the following:
            "cloudsqlBackupRunSource": {
              object (CloudSQLBackupRunSource)
            }
            // End of list of possible types for union field source.
          }
          

    Wenn Sie die Anfrage senden möchten, verwenden Sie eine der folgenden Optionen:

    curl (Linux, macOS oder Cloud Shell)

    Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto in gcloud CLI angemeldet haben. Dazu haben Sie gcloud init oder gcloud auth login ausgeführt oder Cloud Shell verwendet, wodurch Sie automatisch in gcloud CLI angemeldet werden.

    Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list aus.

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

            curl -X POST \
                   -H "Authorization: Bearer $(gcloud auth print-access-token)" \
                   -H "Content-Type: application/json; charset=utf-8" \
                   -d @request.json \
                   "https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters:restoreFromCloudSQL"
          

    PowerShell (Windows)

    Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto in der gcloud CLI angemeldet haben. Dazu haben Sie gcloud init oder gcloudauth login ausgeführt oder Cloud Shell verwendet, wodurch Sie automatisch in der gcloud CLI angemeldet werden.

    Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list aus.

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

            $cred = gcloud auth print-access-token
            $headers = @{ "Authorization" = "Bearer $cred" }
            Invoke-WebRequest `
              -Method POST `
              -Headers $headers `
              -ContentType: "application/json; charset=utf-8" `
              -InFile request.json `
              -Uri "https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters:restoreFromCloudSQL"|Select-Object -Expand Content
          

    Sie erhalten eine JSON-Antwort, die in etwa so aussieht:

    Antwort

    Wenn der Vorgang erfolgreich abgeschlossen wurde, enthält der Antworttext eine Instanz von Operation.

    Im angegebenen Projekt und an dem angegebenen Speicherort wird ein neuer Cluster erstellt. Ein Volume wird aus der Sicherung wiederhergestellt, auf die in der CloudSQLBackupRunSource-Nachricht verwiesen wird.

  3. Wenn sich der Cluster im Status READY befindet, erstellen Sie die primäre Instanz durch Aufrufen der Methode projects.locationsinstances.create:
          POST https://alloydb.googleapis.com/v1beta/{parent=projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID}/instances
          

    Ersetzen Sie Folgendes:

    • PROJECT_ID: Projekt-ID.
    • REGION: Die Region, in der der AlloyDB-Cluster bereitgestellt wird.
    • CLUSTER_ID: die Cluster-ID.

    JSON-Text anfordern:

            {
              "instanceId": "string",
              "instance": {
                "object": "Instance"
              }
            }
          

    Der Anfragetext enthält eine Instanz von Instance.

    Wenn Sie die Anfrage senden möchten, verwenden Sie eine der folgenden Optionen:

    curl (Linux, macOS oder Cloud Shell)

    Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto in gcloud CLI angemeldet haben. Dazu haben Sie gcloud init oder gcloud auth login ausgeführt oder Cloud Shell verwendet, wodurch Sie automatisch in gcloud CLI angemeldet werden.

    Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list aus.

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

            curl -X POST \
                 -H "Authorization: Bearer $(gcloud auth print-access-token)" \
                 -H "Content-Type: application/json; charset=utf-8" \
                 -d @request.json \
                 "https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID/instances"
          

    PowerShell (Windows)

    Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto in gcloud CLI angemeldet haben. Dazu haben Sie gcloud init oder gcloud auth login ausgeführt oder Cloud Shell verwendet, wodurch Sie automatisch in gcloud CLI angemeldet werden.

    Um herauszufinden, welches Konto gerade aktiv ist, führen Sie gcloud auth list aus.

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

             $cred = gcloud auth print-access-token
             $headers = @{ "Authorization" = "Bearer $cred" }
             Invoke-WebRequest `
               -Method POST `
               -Headers $headers `
               -ContentType: "application/json; charset=utf-8" `
               -InFile request.json `
               -Uri "https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID/instances"|Select-Object -Expand Content
          

    Sie erhalten eine JSON-Antwort, die in etwa so aussieht:

    Antwort

    Bei Erfolg enthält der Antworttext eine neu erstellte Instanz von Operation.

  4. Nachdem die Instanz in den Status READY aktualisiert wurde, stellen Sie eine Verbindung zur Instanz her und greifen Sie auf die wiederhergestellten Daten aus dem Cloud SQL-Snapshot zu.

Nächste Schritte