Esegui la migrazione da Cloud SQL per PostgreSQL ad AlloyDB per PostgreSQL

Questa pagina descrive come eseguire la migrazione di un'istanza Cloud SQL per PostgreSQL copiando un backup di Cloud SQL in un di prova gratuitaAlloyDB per PostgreSQL. La copia di un backup di Cloud SQL in un cluster AlloyDB ti consente di caricare rapidamente i dati in AlloyDB per PostgreSQL, il che ti consente di valutare o eseguire la migrazione in AlloyDB.

Questa pagina presuppone familiarità con 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 replicazione continua dei dati, consulta Database Migration Service per la migrazione da PostgreSQL ad AlloyDB.

Non è supportato quanto segue:

  • Ripristini tra progetti e regioni
  • Istanze con chiavi di crittografia gestite dal cliente (CMEK)
  • Istanze con autenticazione di gruppo Identity and Access Management (IAM)

Prima di iniziare

  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. Assicurati di avere quanto segue:

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per copiare un backup di Cloud SQL per PostgreSQL in un cluster AlloyDB, concedi a te stesso i seguenti ruoli IAM nel progetto:

Copiare un backup di Cloud SQL in un cluster AlloyDB

La copia di un backup di Cloud SQL in un cluster AlloyDB in prova gratuita 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 in prova gratuita. 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 cluster di prova gratuita di AlloyDB.

Per copiare un backup di Cloud SQL in un cluster di provagratuito di AlloyDB:

Console

  1. Nella console Google Cloud , vai alla pagina Cluster.

    Vai a Cluster

  2. Se non hai ancora eseguito il provisioning di un cluster, fai clic su Inizia una prova gratuita. Se hai già un cluster, fai clic su Esegui la migrazione dei dati.
  3. Fai clic su Copia dal backup di Cloud SQL.
  4. Nella pagina Copia dal backup di Cloud SQL, abilita le API richieste. Se hai già attivato le API, non è necessario riattivarle.
  5. Nella pagina Seleziona il tipo di cluster, fai clic su Cluster di prova gratuito. Se non hai l'idoneità per un cluster di prova gratuita, questo campo non è selezionabile.
  6. Fai clic su Seleziona il tipo di cluster.
  7. Seleziona l'istanza Cloud SQL di cui vuoi creare una copia, 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.
  8. Seleziona il backup da cui vuoi importare i dati e poi fai clic su Seleziona backup. Questa pagina mostra i 1000 backup più recenti.
  9. Nella pagina Crea un cluster gratuito, inserisci l'ID cluster e le informazioni di rete.
  10. Fai clic su Inizia la prova gratuita.

Al termine dell'operazione, viene creata automaticamente un'istanza principale. Viene visualizzato un nuovo cluster AlloyDB con i dati copiati dal backup di Cloud SQL per PostgreSQL selezionato.

Quando copi un backup di Cloud SQL per PostgreSQL in un cluster AlloyDB, i flag del database e le autorizzazioni a livello di risorsa non vengono migrati automaticamente. Al termine della copia, devi configurare manualmente questi indicatori e queste autorizzazioni.

Puoi controllare quali flag di database in Cloud SQL per PostgreSQL sono supportati in AlloyDB nella pagina Crea il tuo cluster gratuito.

API REST

  1. 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 progetto.
    • INSTANCE_ID: l'ID istanza.

    Corpo JSON della richiesta:

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

    Per inviare la richiesta, utilizza una delle seguenti opzioni:

    curl (Linux, macOS o Cloud Shell)

    Il seguente comando presuppone che tu abbia eseguito l'accesso a Google Cloud CLI con il tuo account utente eseguendo gcloud init o gcloud auth login oppure utilizzando Cloud Shell, che ti consente di accedere automaticamente a gcloud 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 seguente comando presuppone che tu abbia eseguito l'accesso a gcloud CLI con il tuo account utente eseguendo gcloud init o gcloud auth login oppure utilizzando Cloud Shell, che ti consente di accedere automaticamente a gcloud 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:

             $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
          

    Riceverai una risposta JSON simile alla seguente:

    Risposta

    In caso di esito positivo, il corpo della risposta contiene un elenco di BackupRun.

    La risposta dell'API restituisce un elenco di backup per l'istanza come elenco di array, incluso "id": string,.

  2. Chiama il metodo restoreFromCloudSQL:

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

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID progetto.
    • REGION: la regione in cui è disegnato il cluster AlloyDB.

    Corpo JSON della richiesta:

          {
            "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.
          }
          

    Per inviare la richiesta, utilizza una delle seguenti opzioni:

    curl (Linux, macOS o Cloud Shell)

    Il seguente comando presuppone che tu abbia eseguito l'accesso a gcloud CLI con il tuo account utente eseguendo gcloud init o gcloud auth login oppure utilizzando Cloud Shell, che ti consente di accedere automaticamente a gcloud 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 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 seguente comando presuppone che tu abbia eseguito l'accesso a gcloud CLI con il tuo account utente eseguendo gcloud init o gcloudauth login oppure utilizzando Cloud Shell, che ti consente di accedere automaticamente a gcloud 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:

            $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
          

    Riceverai 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.

  3. Quando il cluster è in uno stato READY, crea l'istanza principale chiamando il metodo projects.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 progetto.
    • REGION: la regione in cui è disegnato il 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 delle seguenti opzioni:

    curl (Linux, macOS o Cloud Shell)

    Il seguente comando presuppone che tu abbia eseguito l'accesso a gcloud CLI con il tuo account utente eseguendo gcloud init o gcloud auth login oppure utilizzando Cloud Shell, che ti consente di accedere automaticamente a gcloud 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 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 seguente comando presuppone che tu abbia eseguito l'accesso a gcloud CLI con il tuo account utente eseguendo gcloud init o gcloud auth login oppure utilizzando Cloud Shell, che ti consente di accedere automaticamente a gcloud 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:

             $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
          

    Riceverai una risposta JSON simile alla seguente:

    Risposta

    In caso di esito positivo, il corpo della risposta contiene un'istanza appena creata di Operation.

  4. Dopo che l'istanza è stata aggiornata allo stato READY, connettiti all'istanza e accedi ai dati ripristinati dallo snapshot Cloud SQL.

Passaggi successivi