Questa pagina descrive come eseguire la migrazione di un'istanza Cloud SQL per PostgreSQL copiando un backup di Cloud SQL in un cluster AlloyDB per PostgreSQL. La copia di un backup di Cloud SQL in un cluster AlloyDB consente di caricare rapidamente i dati in AlloyDB per PostgreSQL, il che ti consente di valutare o eseguire la migrazione ad AlloyDB.
Questa pagina presuppone la conoscenza di Cloud SQL. Se non hai mai utilizzato AlloyDB, consulta la panoramica di AlloyDB.
Per scoprire come eseguire la migrazione dei dati da Cloud SQL ad AlloyDB utilizzando la replica continua dei dati, consulta Database Migration Service per PostgreSQL ad AlloyDB.
Le seguenti funzionalità non sono supportate:
- Ripristini tra progetti e tra regioni
- Istanze con chiavi di crittografia gestite dal cliente (CMEK)
- Istanze con autenticazione di gruppo Identity and Access Management (IAM)
Prima di iniziare
- 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.
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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
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.
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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the AlloyDB, Compute Engine, and Service Networking APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. - Assicurati di avere quanto segue:
- Le autorizzazioni Identity and Access Management (IAM) necessarie
- Un backup di Cloud SQL con una dimensione inferiore a 5TB
- Una versione di PostgreSQL supportata da AlloyDB
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per copiare un backup di Cloud SQL per PostgreSQL in un cluster AlloyDB, concediti i seguenti ruoli IAM nel tuo progetto:
- Visualizzatore Cloud SQL
(
roles/cloudsql.viewer
) o qualsiasi ruolo personalizzato che includa l'autorizzazionecloudsql.backupRuns.export
. - Cloud
AlloyDB Admin (
roles/alloydb.admin
)
Copiare un backup di Cloud SQL in un cluster AlloyDB
La copia di un backup di Cloud SQL in un cluster AlloyDB standard consente di ripristinare il backup nella stessa versione di PostgreSQL su AlloyDB, ad esempio un backup di Cloud SQL di PostgreSQL 14 viene ripristinato in un cluster PostgreSQL standard. Tieni presente che le versioni di estensione e le versioni minori di PostgreSQL potrebbero essere diverse.
La copia di un backup da Cloud SQL supporta solo la configurazione di quegli elementi supportati nel clusterstandard di AlloyDB.
Per copiare un backup di Cloud SQL in un cluster AlloyDB standard:
Console
- Nella console Google Cloud , vai alla pagina Cluster.
- Fai clic su Migra dati e poi seleziona Copia dal backup di Cloud SQL.
- Nella pagina Copia dal backup di Cloud SQL, abilita le API richieste. Se hai già abilitato le API, non è necessario riattivarle.
- Nella pagina Seleziona il tipo di cluster, seleziona Cluster di cui è stato eseguito il provisioning.
- Fai clic su Seleziona tipo di cluster.
- Seleziona l'istanza Cloud SQL da cui vuoi copiare un backup, quindi fai clic su Seleziona istanza. Puoi filtrare
le istanze Cloud SQL.
Vengono visualizzate solo le versioni del database compatibili. Le repliche non hanno backup e non vengono visualizzate nell'elenco delle istanze disponibili. - Seleziona il backup da cui vuoi eseguire l'importazione e poi fai clic su Seleziona backup. Questa pagina mostra i 1000 backup più recenti.
- Nella pagina Crea il tuo cluster di cui è stato eseguito il provisioning, inserisci le informazioni di rete. L'ID cluster viene compilato per impostazione predefinita, ma puoi anche personalizzare il cluster di cui è stato eseguito il provisioning.
- Fai clic su Crea cluster.
Al termine dell'operazione, viene creata automaticamente un'istanza primaria. Viene visualizzato un nuovo cluster AlloyDB con i dati copiati dal backup di Cloud SQL per PostgreSQL che hai selezionato.
Quando copi un backup di Cloud SQL per PostgreSQL in un cluster AlloyDB, i flag del database vengono migrati se si trovano in Cloud SQL per PostgreSQL e in AlloyDB. Le autorizzazioni a livello di risorsa non vengono migrate automaticamente. Una volta completata la copia, devi configurare manualmente le autorizzazioni e i flag del database che non sono stati migrati a causa di una mancata corrispondenza.
Puoi controllare quali flag di database in Cloud SQL per PostgreSQL sono supportati in AlloyDB nella pagina Crea il cluster di cui è stato eseguito il provisioning.
gcloud
Per utilizzare Google Cloud CLI, puoi installare e inizializzare gcloud CLI oppure puoi utilizzare Cloud Shell.
- Esegui il comando
gcloud beta alloydb clusters migrate-cloud-sql
:
gcloud beta alloydb clusters migrate-cloud-sql
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
Sostituisci quanto segue:
CLUSTER_ID
: ID cluster AlloyDB.CLOUD_SQL_BACKUP_ID
: ID backup Cloud SQL da cui eseguire la migrazione. Deve essere l'ID backup.CLOUD_SQL_INSTANCE_ID
: l'ID istanza CloudSQL da cui eseguire la migrazione. Deve essere l'ID istanza.CLOUD_SQL_PROJECT_ID
: l'ID progetto Cloud SQL da cui eseguire la migrazione. Deve essere l'ID progetto.PASSWORD
: Password iniziale dell'utente PostgreSQL da impostare durante la creazione del cluster.REGION
: posizione, ad esempioasia-east1
ous-east1
. Consulta l'elenco completo delle regioni in Località regionali.DATABASE_VERSION
: la versione del database del cluster. Deve essere uno tra:POSTGRES_14
,POSTGRES_15
oPOSTGRES_16
. La versione del database deve corrispondere a quella del backup Cloud SQL.SUBSCRIPTION_TYPE
: il tipo di abbonamento del cluster. Deve essere uno dei seguenti:STANDARD
oTRIAL
.
- Esegui il comando
gcloud beta alloydb operations describe
per confermare lo stato dell'operazione di backup:
gcloud beta alloydb operations describe OPERATION_ID \ --region=REGION_ID \ --project=PROJECT_ID
Sostituisci quanto segue:
OPERATION_ID
: il nome dell'operazione AlloyDB.REGION_ID
: la regione in cui viene eseguito il deployment del cluster AlloyDB.PROJECT_ID
: l'ID progetto
- Utilizza il comando
gcloud alloydb instances create
per creare un'istanza principale.
API REST
- Per ottenere un elenco dei backup per l'istanza da cui vuoi ripristinare
il backup, chiama il metodo
backupsRuns.list
:
GET "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/backupRuns"
Sostituisci quanto segue:
PROJECT_ID
: l'ID progettoINSTANCE_ID
: l'ID istanza.
Corpo JSON della richiesta:
{ "kind": string, "items": [ { object (BackupRun) } ], "nextPageToken": string }
Per inviare la richiesta, utilizza una di queste opzioni:
curl (Linux, macOS o Cloud Shell)
Il comando seguente presuppone che tu abbia eseguito l'accesso a
Google Cloud CLI
con il tuo account utente eseguendogcloud init
ogcloud auth login
, o utilizzandoCloud Shell
, che esegue automaticamente l'accesso agcloud CLI
.Puoi controllare l'account attivo eseguendo
gcloud auth list
.Salva il corpo della richiesta in un file denominato
request.json
ed esegui il seguente comando: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)
Il comando seguente presuppone che tu abbia eseguito l'accesso a
gcloud CLI
con il tuo account utente eseguendogcloud init
ogcloud auth login
oppure utilizzandoCloud Shell
, che esegue automaticamente l'accesso agcloud CLI
.Puoi controllare l'account attivo eseguendo
gcloud auth list
.Salva il corpo della richiesta in un file denominato
request.json
ed esegui questo comando:$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
Ricevi una risposta JSON simile alla seguente:
Risposta
In caso di esito positivo, il corpo della risposta contiene un elenco di
La risposta dell'API restituisce un elenco di backup per l'istanza come elenco di array, inclusoBackupRun
."id": string,
. - Chiama il metodo restoreFromCloudSQL:
POST https://alloydb.googleapis.com/v1beta/projects/PROJECT_ID/locations/REGION/clusters:restoreFromCloudSQL
Sostituisci quanto segue:
PROJECT_ID
: l'ID progettoREGION
: la regione in cui viene eseguito il deployment del cluster AlloyDB.
Corpo JSON della richiesta:
{ "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. }
Per inviare la richiesta, utilizza una di queste opzioni:
curl (Linux, macOS o Cloud Shell)
Il comando seguente presuppone che tu abbia eseguito l'accesso a
gcloud CLI
con il tuo account utente eseguendogcloud init
ogcloud auth login
o utilizzandoCloud Shell
, che esegue automaticamente l'accesso agcloud CLI
.Puoi controllare l'account attivo eseguendo
gcloud auth list
.Salva il corpo della richiesta in un file denominato
request.json
ed esegui questo comando: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)
Il comando seguente presuppone che tu abbia eseguito l'accesso a
gcloud CLI
con il tuo account utente eseguendogcloud init
ogcloudauth login
, o utilizzandoCloud Shell
, che esegue automaticamente l'accesso agcloud CLI
.Puoi controllare l'account attivo eseguendo
gcloud auth list
.Salva il corpo della richiesta in un file denominato
request.json
ed esegui questo comando:$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
Ricevi una risposta JSON simile alla seguente:
Risposta
In caso di esito positivo, il corpo della risposta contiene un'istanza di
Operation
.Viene creato un nuovo cluster nel progetto e nella posizione specificati, con un volume ripristinato dal backup indicato nel messaggio CloudSQLBackupRunSource.
- Quando il cluster è nello stato
READY
, crea l'istanza principale chiamando il metodoprojects.locationsinstances.create
:
POST https://alloydb.googleapis.com/v1beta/{parent=projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID}/instances
Sostituisci quanto segue:
PROJECT_ID
: l'ID progettoREGION
: la regione in cui viene eseguito il deployment del cluster AlloyDB.CLUSTER_ID
: l'ID cluster.
Corpo JSON della richiesta:
{ "instanceId": "string", "instance": { "object": "Instance" } }
Il corpo della richiesta contiene un'istanza di
Instance
.Per inviare la richiesta, utilizza una di queste opzioni:
curl (Linux, macOS o Cloud Shell)
Il comando seguente presuppone che tu abbia eseguito l'accesso a
gcloud CLI
con il tuo account utente eseguendogcloud init
ogcloud auth login
o utilizzandoCloud Shell
, che esegue automaticamente l'accesso agcloud CLI
.Puoi controllare l'account attivo eseguendo
gcloud auth list
.Salva il corpo della richiesta in un file denominato
request.json
ed esegui questo comando: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)
Il comando seguente presuppone che tu abbia eseguito l'accesso a
gcloud CLI
con il tuo account utente eseguendogcloud init
ogcloud auth login
o utilizzandoCloud Shell
, che esegue automaticamente l'accesso agcloud CLI
.Puoi controllare l'account attivo eseguendo
gcloud auth list
.Salva il corpo della richiesta in un file denominato
request.json
ed esegui questo comando:$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
Ricevi una risposta JSON simile alla seguente:
Risposta
In caso di esito positivo, il corpo della risposta contiene un'istanza appena creata di
Operation
. - Dopo che l'istanza è stata aggiornata allo stato
READY
, connettiti all'istanza e accedi ai dati ripristinati dallo snapshot Cloud SQL.
Passaggi successivi