Wenn Sie AlloyDB for PostgreSQL evaluieren oder eine vorhandene Arbeitslast migrieren möchten, ohne eine kontinuierliche Replikation einzurichten, können Sie eine Cloud SQL for PostgreSQL-Sicherung direkt in einen Clustervon AlloyDB kopieren.
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 Ihrer Daten von Cloud SQL zu AlloyDB mithilfe der kontinuierlichen Datenreplikation finden Sie unter Database Migration Service für PostgreSQL zu AlloyDB.
Die folgenden Konfigurationen werden nicht unterstützt:
- Projektübergreifende und regionenübergreifende Wiederherstellungen
- Instanzen mit kundenverwalteten Verschlüsselungsschlüsseln (CMEK)
Hinweis
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud 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 Google Cloud project.
-
Aktivieren Sie die AlloyDB, Compute Engine und Service Networking APIs, falls sie noch nicht aktiviert sind.
Erforderliche Rollen zum Aktivieren von APIs
Zum Aktivieren von APIs benötigen Sie die Berechtigung
serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Inhaberrolle (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollen - Folgende Voraussetzungen müssen erfüllt sein:
- Die erforderlichen IAM-Berechtigungen (Identity and Access Management)
- Eine Cloud SQL-Sicherung mit einer Größe von weniger als 15 TB
- Eine von AlloyDB unterstützte PostgreSQL-Version
Erforderliche Rollen
Um die Berechtigungen zu erhalten, die Sie zum Kopieren einer Cloud SQL for PostgreSQL-Sicherung in einen AlloyDB-Cluster benötigen, weisen Sie sich die folgenden IAM-Rollen für Ihr Projekt zu:
- Cloud SQL-Betrachter (
roles/cloudsql.viewer) oder eine beliebige benutzerdefinierte Rolle, die die Berechtigungcloudsql.backupRuns.exportenthält. - AlloyDB Admin
(
roles/alloydb.admin)
Cloud SQL-Sicherung in einen AlloyDB-Cluster kopieren
Wenn Sie ein Cloud SQL-Sicherungselement in einenStandard 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 Standardcluster von AlloyDB unterstützt werden.
So kopieren Sie eine Cloud SQL-Sicherung in einenvon AlloyDB:
Console
- Rufen Sie in der Google Cloud 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 den 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 von Ihnen ausgewählten Cloud SQL for PostgreSQL-Sicherung kopiert wurden.
Wenn Sie eine Cloud SQL for PostgreSQL-Sicherung in einen AlloyDB-Cluster kopieren, werden die Konfigurationen einzelner Nutzer und IAM-Gruppennutzer von AlloyDB zugeordnet und beibehalten. AlloyDB migriert auch Datenbank-Flags, die sowohl in Cloud SQL for PostgreSQL als auch in AlloyDB unterstützt werden. Berechtigungen auf Ressourcenebene werden nicht automatisch migriert. Nachdem die Kopie erstellt wurde, müssen Sie Berechtigungen und alle 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 Google Cloud CLI verwenden möchten, können Sie die gcloud CLI installieren und initialisieren oder Cloud Shell verwenden.
- Führen Sie den Befehl
gcloud alloydb clusters migrate-cloud-sqlaus:
gcloud 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: AlloyDB-Cluster-ID.CLOUD_SQL_BACKUP_ID: Cloud SQL-Sicherungs-ID, von der migriert werden soll. Dies muss die Sicherungs-ID sein.CLOUD_SQL_INSTANCE_ID: ID der Cloud SQL-Instanz, von der migriert werden soll. Dies muss die Instanz-ID sein.CLOUD_SQL_PROJECT_ID: Cloud SQL-Projekt-ID, von der migriert werden soll. Dies muss die Projekt-ID sein.PASSWORD: Das anfängliche PostgreSQL-Nutzerpasswort, das bei der Clustererstellung eingerichtet werden soll.REGION: Standort, z. B.asia-east1oderus-east1. Eine vollständige Liste der Regionen finden Sie unter Standorte.DATABASE_VERSION: Datenbankversion des Clusters. Dies muss einer der folgenden Werte sein:POSTGRES_14,POSTGRES_15,POSTGRES_16,POSTGRES_17oderPOSTGRES_18. Die Datenbankversion muss mit der Version der Cloud SQL-Sicherung übereinstimmen.
- Führen Sie den Befehl
gcloud alloydb operations describeaus, um den Status des Sicherungsvorgangs zu prüfen:
gcloud alloydb operations describeOPERATION_ID\ --region=REGION_ID\ --project=PROJECT_IDErsetzen Sie Folgendes:
OPERATION_ID: Der Name des AlloyDB-Vorgangs.REGION_ID: die Region, in der der AlloyDB-Cluster bereitgestellt wird.PROJECT_ID: Projekt-ID.
- Verwenden Sie den Befehl
gcloud alloydb instances create, um eine primäre Instanz zu erstellen.
REST API
- Rufen Sie die Methode
backupRuns.listauf, um eine Liste der Sicherungen für die Instanz abzurufen, aus der Sie Ihre Sicherung wiederherstellen möchten:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/backupRunsErsetzen Sie Folgendes:
PROJECT_ID: Projekt-ID.INSTANCE_ID: Instanz-ID.
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
Google Cloud 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.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/v1/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.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/v1/projects/PROJECT_ID/instances/INSTANCE_ID/backupRuns" | Select-Object -Expand ContentSie erhalten eine JSON-Antwort ähnlich wie diese:
Antwort
Wenn der Vorgang erfolgreich abgeschlossen wurde, enthält der Antworttext eine Liste von
BackupRun-Objekten:{ "kind": string, "items": [ { object (BackupRun) } ], "nextPageToken": string }Die API-Antwort gibt eine Liste der Sicherungen für die Instanz als Arrayliste zurück, einschließlich
"id": string. - Rufen Sie die Methode
clusters.restoreFromCloudSQLauf:POST https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/clusters:restoreFromCloudSQLErsetzen Sie Folgendes:
PROJECT_ID: 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/POSTGRES_18", "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/v1/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 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/v1/projects/PROJECT_ID/locations/REGION/clusters:restoreFromCloudSQL"|Select-Object -Expand ContentSie erhalten eine JSON-Antwort ähnlich wie diese:
Antwort
Wenn der Vorgang erfolgreich abgeschlossen wurde, enthält der Antworttext eine Instanz von
Operation.AlloyDB erstellt einen neuen Cluster im angegebenen Projekt und am angegebenen Standort und stellt das Volume aus der Sicherung wieder her, die in der CloudSQLBackupRunSource-Nachricht angegeben ist.
- Wenn der Cluster den Status
READYhat, erstellen Sie die primäre Instanz, indem Sie die Methodeprojects.locations.clusters.instances.createaufrufen:
POST https://alloydb.googleapis.com/v1/{parent=projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID}/instancesErsetzen Sie Folgendes:
PROJECT_ID: 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/v1/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/v1/projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID/instances"|Select-Object -Expand ContentSie erhalten eine JSON-Antwort ähnlich wie diese:
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.