Auf dieser Seite wird beschrieben, wie Sie eine Cloud SQL for PostgreSQL-Instanz migrieren, indem Sie ein Cloud SQL-Sicherungselement in einen Clustervon AlloyDB for PostgreSQL kopieren. Wenn Sie ein Cloud SQL-Backup in einen AlloyDB-Cluster kopieren, können Sie schnell Daten in AlloyDB for PostgreSQL laden, um AlloyDB zu testen oder zu migrieren.
Auf dieser Seite wird vorausgesetzt, dass Sie mit Cloud SQL vertraut sind. Wenn Sie AlloyDB noch nicht kennen, lesen Sie die AlloyDB-Übersicht.
Informationen zum Migrieren von Daten von Cloud SQL zu AlloyDB mit kontinuierlicher Datenreplikation finden Sie unter Database Migration Service für PostgreSQL zu AlloyDB.
Folgendes wird nicht unterstützt:
- Cloud SQL Enterprise Plus-Instanzen
- Projektübergreifende und regionenübergreifende Wiederherstellungen
- Instanzen mit vom Kunden verwalteten Verschlüsselungsschlüsseln (CMEK)
- Instanzen mit IAM-Gruppenauthentifizierung (Identity and Access Management)
Hinweise
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the AlloyDB, Compute Engine, and Service Networking APIs.
- 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 5 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 selbst die folgenden IAM-Rollen für Ihr Projekt zu:
- Cloud SQL-Betrachter
(
roles/cloudsql.viewer
) oder eine benutzerdefinierte Rolle, die die Berechtigungcloudsql.backupRuns.export
enthält. - Cloud AlloyDB-Administrator (
roles/alloydb.admin
)
Cloud SQL-Sicherung in einen AlloyDB-Cluster kopieren
Wenn Sie ein Cloud SQL-Sicherungselement in einenStandardKostenlosen Testzeitraum -Cluster von AlloyDB for PostgreSQL kopieren, wird die Sicherung mit derselben PostgreSQL-Version in AlloyDB wiederhergestellt. Beispiel: Ein Cloud SQL-Sicherungselement von PostgreSQL 14 wird in einem PostgreSQL 14-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 imstandardmäßigen kostenlosen Testcluster von AlloyDB unterstützt werden.
So kopieren Sie ein Cloud SQL-Sicherungselement in einenStandardKostenlosen Testzeitraum-Cluster von AlloyDB for PostgreSQL:
Konsole
- 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 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 ein Cloud SQL for PostgreSQL-Backup in einen AlloyDB-Cluster kopieren, werden Datenbank-Flags migriert, sofern sie sowohl in Cloud SQL for PostgreSQL als auch in AlloyDB vorhanden sind. Berechtigungen auf Ressourcenebene werden nicht automatisch migriert. Nachdem das Kopieren abgeschlossen ist, müssen Sie Berechtigungen und Datenbank-Flags, die aufgrund einer Abweichung nicht migriert wurden, manuell einrichten.
Auf der Seite Provisionierten Cluster erstellen können Sie nachsehen, welche Datenbankflags 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 beta alloydb clusters migrate-cloud-sql
aus:
gcloud beta alloydb clusters migrate-cloud-sql CLUSTER_ID
--cluster-id=CLUSTER_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=STANDARD
Ersetzen 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
: CloudSQL-Instanz-ID, von der migriert werden soll. Dies muss die Instanz-ID sein.CLOUD_SQL_PROJECT_ID
: Cloud SQL-Projekt-ID für die Migration. Dies muss die Projekt-ID sein.PASSWORD
: Das anfängliche PostgreSQL-Nutzerpasswort, das beim Erstellen des Clusters festgelegt werden soll.REGION
: Der Standort, z. B.asia-east1
oderus-east1
. Eine vollständige Liste der Regionen finden Sie unter Regionale Standorte.DATABASE_VERSION
: Die Datenbankversion des Clusters. Muss einer der folgenden Werte sein:POSTGRES_14
,POSTGRES_15
oderPOSTGRES_16
. Die Datenbankversion muss mit der Version der Cloud SQL-Sicherung übereinstimmen.SUBSCRIPTION_TYPE
: Der Abotyp des Clusters. Dies muss einer der folgenden Werte sein:STANDARD
oderTRIAL
.
- Führen Sie den Befehl
gcloud beta alloydb operations describe
aus, um den Status des Sicherungsvorgangs zu prüfen:
gcloud beta alloydb operations describe OPERATION_ID \ --region=REGION_ID \ --project=PROJECT_ID
Ersetzen 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
backupsRuns.list
auf, um eine Liste der Sicherungen für die Instanz zu erhalten, 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, haben Sie folgende Möglichkeiten:
curl (Linux, macOS oder Cloud Shell)
Der folgende Befehl setzt voraus, dass Sie sich mit Ihrem Nutzerkonto in der
Google Cloud CLI
angemeldet haben. Dazu haben Siegcloud init
odergcloud auth login
ausgeführt oder dieCloud Shell
genutzt, die Sie automatisch in dergcloud CLI
anmeldet.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 Siegcloud init
odergcloud auth login
ausgeführt oder dieCloud Shell
genutzt, die Sie automatisch in dergcloud CLI
anmeldet.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 ä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 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": "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, haben Sie folgende Möglichkeiten:
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 Siegcloud init
odergcloud auth login
ausgeführt oder dieCloud Shell
genutzt, die Sie automatisch in dergcloud CLI
anmeldet.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 Siegcloud init
odergcloudauth login
ausgeführt oder dieCloud Shell
genutzt, die Sie automatisch in dergcloud CLI
anmeldet.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 ähnlich der folgenden:
Antwort
Wenn der Vorgang erfolgreich abgeschlossen wurde, enthält der Antworttext eine Instanz von
Operation
.Ein neuer Cluster wird im angegebenen Projekt und am angegebenen Standort erstellt. Ein Volume wird aus der Sicherung wiederhergestellt, auf die in der Nachricht CloudSQLBackupRunSource verwiesen wird.
- Wenn sich der Cluster im Status
READY
befindet, erstellen Sie die primäre Instanz, indem Sie die Methodeprojects.locationsinstances.create
aufrufen:
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, haben Sie folgende Möglichkeiten:
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 Siegcloud init
odergcloud auth login
ausgeführt oder dieCloud Shell
genutzt, die Sie automatisch in dergcloud CLI
anmeldet.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 der
gcloud CLI
angemeldet haben. Dazu haben Siegcloud init
odergcloud auth login
ausgeführt oder dieCloud Shell
genutzt, die Sie automatisch in dergcloud CLI
anmeldet.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 ähnlich der folgenden:
Antwort
Bei Erfolg enthält der Antworttext eine neu erstellte Instanz von
Operation
. - Nachdem die Instanz auf 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