Auf dieser Seite wird beschrieben, wie Sie eine Cloud SQL for PostgreSQL-Instanz migrieren, indem Sie eine Cloud SQL-Sicherung in einen AlloyDB for PostgreSQL kopieren. Wenn Sie eine Cloud SQL-Sicherung in einen AlloyDB-Cluster kopieren, können Sie schnell Daten in Cloud SQL for PostgreSQL laden, um AlloyDB zu testen oder zu migrieren.
Auf dieser Seite wird davon ausgegangen, dass Sie mit Cloud SQL vertraut sind. Wenn Sie AlloyDB noch nicht kennen, lesen Sie die AlloyDB-Übersicht.
Informationen zum Migrieren von Daten aus Cloud SQL zu AlloyDB mithilfe der kontinuierlichen Datenreplikation, finden Sie unter Database Migration Service für PostgreSQL zu AlloyDB.
Folgendes wird nicht unterstützt:
- Projektübergreifende und regionenübergreifende Wiederherstellungen
- Instanzen mit kundenverwalteten Verschlüsselungsschlüsseln (Customer Managed Encryption Keys, CMEK)
- Instanzen mit der Gruppenauthentifizierung von Identity and Access Management (IAM)
Hinweis
-
In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Cloud de Confiance project.
-
Aktivieren Sie die AlloyDB-, Compute Engine- und Service Networking APIs.
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (
roles/serviceusage.serviceUsageAdmin), die die Berechtigungserviceusage.services.enableenthält. Informationen zum Zuweisen von Rollen. - Prüfen Sie, ob Sie Folgendes haben:
- Die erforderlichen IAM-Berechtigungen (Identity and Access Management)
- Eine Cloud SQL-Sicherung mit einer Größe von weniger als 15TB
- Eine von AlloyDB unterstützte PostgreSQL-Version
Erforderliche Rollen
Damit Sie eine Cloud SQL for PostgreSQL-Sicherung in einen AlloyDB-Cluster kopieren können, weisen Sie sich selbst die folgenden IAM-Rollen für Ihr Projekt zu:
- Cloud SQL-Betrachter(
roles/cloudsql.viewer) oder eine benutzerdefinierte Rolle, die die Berechtigungcloudsql.backupRuns.exportenthält. - Cloud
AlloyDB-Administrator (
roles/alloydb.admin)
Cloud SQL-Sicherung in einen AlloyDB-Cluster kopieren
Wenn Sie eine Cloud SQL-Sicherung in einen AlloyDB cluster kopieren, wird die Sicherung mit derselben PostgreSQL-Version in AlloyDB wiederhergestellt. Beispiel: Eine Cloud SQL-Sicherung von PostgreSQL 14 wird in einem PostgreSQL 14 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 AlloyDB cluster unterstützt werden.
So kopieren Sie eine Cloud SQL-Sicherung in einen AlloyDB standard -Cluster:
Console
- Rufen Sie in der Cloud de Confiance Console die Seite Cluster
auf.
- Klicken Sie auf Daten migrieren und wählen Sie dann Aus Cloud SQL-Sicherung kopieren aus.
- 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.
- Wählen Sie auf der Seite Clustertyp auswählen die Option Bereitgestellter Cluster aus.
- Klicken Sie auf Clustertyp auswählen.
- Wählen Sie die Cloud SQL-Instanz aus, aus der Sie eine Sicherung kopieren möchten
und klicken Sie dann auf Instanz auswählen. Sie können
Cloud SQL-Instanzen filtern.
Es werden nur kompatible Datenbankversionen angezeigt. Replikate haben keine Sicherungen und werden nicht in der Liste der verfügbaren Instanzen angezeigt. - Wählen Sie die Sicherung aus, aus der Sie Daten importieren möchten, und klicken Sie dann auf Sicherung auswählen. Auf dieser Seite werden die letzten 1.000 Sicherungen angezeigt.
- Geben Sie auf der Seite Bereitgestellten Cluster erstellen Ihre Netzwerkinformationen ein. Die Cluster-ID wird standardmäßig ausgefüllt, Sie können Ihren bereitgestellten Cluster aber auch anpassen.
- Klicken Sie auf Cluster erstellen.
Nach Abschluss des Vorgangs wird automatisch eine primäre Instanz erstellt. Sie sehen einen neuen AlloyDB Cluster mit den Daten, die aus der ausgewählten Cloud SQL for PostgreSQL Sicherung kopiert wurden.
Wenn Sie eine Cloud SQL for PostgreSQL Sicherung in einen AlloyDB-Cluster kopieren, werden Datenbank-Flags migriert, wenn sie sowohl in Cloud SQL for PostgreSQL als auch in AlloyDB vorhanden sind. Berechtigungen auf Ressourcenebene werden nicht automatisch migriert. Nach Abschluss des Kopiervorgangs müssen Sie Berechtigungen und Datenbank-Flags, die aufgrund einer Abweichung nicht migriert wurden, manuell einrichten.
Auf der Seite Bereitgestellten Cluster erstellen können Sie prüfen, welche Datenbank-Flags in Cloud SQL for PostgreSQL in AlloyDB unterstützt werden.
gcloud
Wenn Sie die gcloud CLI verwenden möchten, können Sie die gcloud CLI installieren und initialisieren oder Cloud Shell verwenden.
- Führen Sie den
gcloud beta alloydb clusters migrate-cloud-sqlBefehl aus:
gcloud beta alloydb clusters migrate-cloud-sqlCLUSTER_ID\ --cloud-sql-backup-id=CLOUD_SQL_BACKUP_ID\ --cloud-sql-instance-id=CLOUD_SQL_INSTANCE_ID\ --cloud-sql-project-id=CLOUD_SQL_PROJECT_ID\ --password=PASSWORD\ --region=REGION\ --database-version=DATABASE_VERSION\ --subscription-type=STANDARDErsetzen Sie Folgendes:
CLUSTER_ID: Cloud SQL for PostgreSQL-Cluster-ID.CLOUD_SQL_BACKUP_ID: Cloud SQL-Sicherungs-ID, aus der migriert werden soll. Dies muss die Sicherungs-ID sein.CLOUD_SQL_INSTANCE_ID: Cloud SQL-Instanz-ID, aus der migriert werden soll. Dies muss die Instanz-ID sein.CLOUD_SQL_PROJECT_ID: Cloud SQL-Projekt-ID, aus der migriert werden soll. Dies muss die Projekt-ID sein.PASSWORD: Passwort des ersten PostgreSQL-Nutzers, das bei der Cluster Erstellung eingerichtet werden soll.REGION: Standort, z. B.asia-east1oderus-east1. Eine vollständige Liste der Regionen finden Sie unter Regionale Standorte.DATABASE_VERSION: Datenbankversion des Clusters. Dies muss eine der folgenden Versionen sein:POSTGRES_14,POSTGRES_15,POSTGRES_16oderPOSTGRES_17. Die Datenbankversion muss mit der Version der Cloud SQL-Sicherung übereinstimmen.SUBSCRIPTION_TYPE: Abo-Typ des Clusters. Dies muss entwederSTANDARDoderTRIALsein.
- Führen Sie den
gcloud beta alloydb operations describeBefehl aus, um den Status des Sicherungsvorgangs zu bestätigen:
gcloud beta alloydb operations describe OPERATION_ID \ --region=REGION_ID \ --project=PROJECT_IDErsetzen Sie Folgendes:
OPERATION_ID: Der Name des Cloud SQL for PostgreSQL-Vorgangs.REGION_ID: Die Region, in der der Cloud SQL for PostgreSQL-Cluster bereitgestellt wird.PROJECT_ID: Die Projekt-ID.
- Verwenden Sie den
gcloud alloydb instances createBefehl, um eine primäre Instanz zu erstellen.
REST API
- Rufen Sie die Methode
backupsRuns.listauf, 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: Die Projekt-ID.INSTANCE_ID: Die Instanz-ID.
JSON-Text der Anfrage:
{ "kind": string, "items": [ { object (BackupRun) } ], "nextPageToken": string }Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl (Linux, macOS oder Cloud Shell)
Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto in der
gcloud CLIangemeldet haben. Dazu haben Siegcloud initodergcloud auth login, oder dieCloud Shellgenutzt, die Sie automatisch in dergcloud CLIanmeldet.Um herauszufinden, welches Konto gerade aktiv ist, führen Sie
gcloud auth listaus.Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.jsonund 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 CLIangemeldet haben. Dazu haben Siegcloud initodergcloud auth loginausgeführt oder dieCloud Shellgenutzt, die Sie automatisch in dergcloud CLIanmeldet.Um herauszufinden, welches Konto gerade aktiv ist, führen Sie
gcloud auth listaus.Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.jsonund 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 ContentSie erhalten eine JSON-Antwort ähnlich der folgenden:
Antwort
Bei Erfolg enthält der Antworttext eine Liste von
Die API-Antwort gibt eine Liste der Sicherungen für die Instanz als Array Liste zurück, einschließlichBackupRun."id": string,. - Rufen Sie die restoreFromCloudSQL
Methode auf:
POST https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters:restoreFromCloudSQLErsetzen Sie Folgendes:
PROJECT_ID: Die Projekt-ID.REGION: Die Region, in der der AlloyDB-Cluster bereitgestellt wird.
JSON-Text der Anfrage:
{ "clusterId": string, "cluster": { "databaseVersion": "POSTGRES_14/POSTGRES_15/POSTGRES_16/POSTGRES_17", "subscriptionType": "STANDARD" }, // 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, wählen Sie eine der folgenden Optionen aus:
curl (Linux, macOS oder Cloud Shell)
Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto in der
gcloud CLIangemeldet haben. Dazu haben Siegcloud initodergcloud auth loginausgeführt oder dieCloud Shellgenutzt, die Sie automatisch in dergcloud CLIanmeldet.Um herauszufinden, welches Konto gerade aktiv ist, führen Sie
gcloud auth listaus.Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.jsonund 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 CLIangemeldet haben. Dazu haben Siegcloud initodergcloudauth login, oder dieCloud Shellgenutzt, die Sie automatisch in dergcloud CLIanmeldet.Um herauszufinden, welches Konto gerade aktiv ist, führen Sie
gcloud auth listaus.Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.jsonund 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 ContentSie erhalten eine JSON-Antwort ähnlich der folgenden:
Antwort
Bei Erfolg enthält der Antworttext eine Instanz von
Operation.Im angegebenen Projekt und am angegebenen Standort wird ein neuer Cluster erstellt, wobei ein Volume aus der Sicherung wiederhergestellt wird, auf die in der Nachricht CloudSQLBackupRunSource verwiesen wird.
- Wenn sich der Cluster im Status
READYbefindet, erstellen Sie die primäre Instanz, indem Sie dieprojects.locationsinstances.createMethode aufrufen:
POST https://alloydb.googleapis.com/v1beta/{parent=projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID}/instancesErsetzen Sie Folgendes:
PROJECT_ID: Die Projekt-ID.REGION: Die Region, in der der AlloyDB-Cluster bereitgestellt wird.CLUSTER_ID: Die Cluster-ID.
JSON-Text der Anfrage:
{ "instanceId": "string", "instance": { "object": "Instance" } }Der Anfragetext enthält eine Instanz von
Instance.Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl (Linux, macOS oder Cloud Shell)
Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto in der
gcloud CLIangemeldet haben. Dazu haben Siegcloud initodergcloud auth loginausgeführt oder dieCloud Shellgenutzt, die Sie automatisch in dergcloud CLIanmeldet.Um herauszufinden, welches Konto gerade aktiv ist, führen Sie
gcloud auth listaus.Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.jsonund 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 der
gcloud CLIangemeldet haben. Dazu haben Siegcloud initodergcloud auth loginausgeführt oder dieCloud Shellgenutzt, die Sie automatisch in dergcloud CLIanmeldet.Um herauszufinden, welches Konto gerade aktiv ist, führen Sie
gcloud auth listaus.Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.jsonund 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 ContentSie erhalten eine JSON-Antwort ähnlich der folgenden:
Antwort
Bei Erfolg enthält der Antworttext eine neu erstellte Instanz von
Operation. - Nachdem die Instanz auf den Status
READYaktualisiert wurde, stellen Sie eine Verbindung zur Instanz her und greifen Sie auf die wiederhergestellten Daten aus dem Cloud SQL-Snapshot zu.