Per ricostruire un database da uno script di testo normale di comandi SQL, puoi importare un file SQL archiviato in un bucket Cloud Storage in un cluster AlloyDB per PostgreSQL.
Puoi annullare l'importazione dei dati nei cluster AlloyDB. Per saperne di più, consulta Annulla un'operazione di importazione.
Quando importi i file di dump SQL, assicurati che la versione di PostgreSQL da cui è stato creato il dump sia compatibile con la versione di PostgreSQL della tua istanza AlloyDB. L'importazione di un file di dump da una versione successiva a una precedente potrebbe non riuscire a causa di una sintassi SQL incompatibile.
Prima di iniziare
Prima di iniziare un'operazione di importazione:
- Assicurati che il tuo database abbia una quota di spazio di archiviazione adeguata.
- Le operazioni di importazione utilizzano le risorse del database, ma non interferiscono con le normali operazioni del database, a meno che il provisioning del cluster non sia insufficiente.
Ruoli e autorizzazioni richiesti per l'importazione in AlloyDB
Per importare i dati da Cloud Storage in AlloyDB, l'utente che avvia l'importazione deve avere uno dei seguenti ruoli:
- Il ruolo AlloyDB Admin
- Un ruolo personalizzato, che include le seguenti autorizzazioni:
alloydb.clusters.getalloydb.clusters.import
Inoltre, il account di servizio del cluster AlloyDB deve avere uno dei seguenti ruoli:
- Il ruolo IAM
storage.objectViewer - Un ruolo personalizzato, incluse le seguenti autorizzazioni:
storage.objects.get
Per assistenza con i ruoli IAM, consulta Identity and Access Management.
Importa un file SQL nei cluster AlloyDB
Per importare i dati in un cluster AlloyDB utilizzando un file SQL, segui questi passaggi:
Console
Nella console Google Cloud , vai alla pagina Cluster.
Fai clic sul nome di un cluster per aprire la pagina Panoramica del cluster.
Fai clic su Importa.
In Formato file, seleziona SQL.
In Seleziona file di origine, scegli se caricare i file dal computer o selezionare un file da una posizione di Cloud Storage.
Per caricare un file dal computer:
- Seleziona Carica file dal tuo computer.
- Fai clic su Sfoglia accanto a Seleziona file locale per selezionare un file SQL dalla tua macchina locale.
- Fai clic su Sfoglia accanto a Seleziona la località di Cloud Storage per selezionare una località di Cloud Storage in cui archiviare il file locale caricato.
- Fai clic su Carica per caricare il file.
Per selezionare un file SQL presente in un bucket Cloud Storage, segui questi passaggi:
- Seleziona Seleziona il file da Google Cloud Storage.
- Fai clic su Sfoglia accanto a bucket-name/file-name per selezionare un file SQL da un bucket Cloud Storage.
Seleziona il database in cui vuoi importare i dati dal menu a discesa Database.
Se il file di dump SQL include un metacomando
\connect(o\c), esegue l'override del database di destinazione selezionato nella console Google Cloud .(Facoltativo) Per specificare un utente per l'operazione di importazione, fai clic su Mostra opzioni utente e inserisci il nome utente nel campo Utente.
Per avviare l'operazione di importazione, fai clic su Importa.
gcloud
- Crea un bucket Cloud Storage.
Carica il file SQL nel bucket. Per assistenza sul caricamento di file nei bucket, consulta Caricamento di oggetti.
Utilizza
gcloud storage buckets add-iam-policy-bindingper concedere il ruolo IAMstorage.objectVieweral account di servizio del cluster AlloyDB per il bucket:service-PROJECT_NUMBER@gcp-sa-alloydb.iam.gserviceaccount.comPer assistenza con l'impostazione delle autorizzazioni IAM, consulta Utilizzo delle autorizzazioni IAM.
Importa il file:
gcloud alloydb clusters import CLUSTER_NAME \ --region=REGION \ --database=DATABASE_NAME \ --gcs-uri='gs://BUCKET_NAME/PATH_TO_SQL_FILE' \ --user=USERNAME \ --sqlSostituisci quanto segue:
- CLUSTER_NAME: il nome del cluster.
- REGION: la regione in cui è stato eseguito il deployment del cluster AlloyDB.
- DATABASE_NAME: il nome di un database all'interno del cluster.
- BUCKET_NAME: il nome del bucket Cloud Storage.
- PATH_TO_SQL_FILE: il percorso del file SQL.
- USERNAME: l'utente per l'operazione di importazione.
Se il comando restituisce un errore come
PERMISSION_DENIED, controlla le autorizzazioni.Per informazioni sull'utilizzo del comando
import, consulta la pagina di riferimento del comandogcloud alloydb clusters import.Se non hai bisogno di conservare le autorizzazioni IAM impostate in precedenza, rimuovile utilizzando
gcloud storage buckets remove-iam-policy-binding.
REST v1
- Crea un bucket Cloud Storage.
- Carica il file SQL nel bucket. Per assistenza sul caricamento di file nei bucket, consulta Caricamento di oggetti.
Utilizza
gcloud storage buckets add-iam-policy-bindingper concedere il ruolo IAMstorage.objectVieweral account di servizio del cluster AlloyDB per il bucket. Il formato del account di servizio è il seguente:service-PROJECT_NUMBER@gcp-sa-alloydb.iam.gserviceaccount.comPer assistenza con l'impostazione delle autorizzazioni IAM, consulta Utilizzo delle autorizzazioni IAM.
Importa il file SQL.
Utilizza il seguente metodo HTTP e URL:
POST https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID:importPrima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID progetto
- LOCATION_ID: la regione in cui è stato eseguito il deployment del cluster AlloyDB.
- CLUSTER_ID: l'ID cluster.
- BUCKET_NAME: il nome del bucket Cloud Storage.
- PATH_TO_SQL_FILE: il percorso del file SQL.
- USER: l'utente da utilizzare per l'importazione.
- DATABASE_NAME: il nome di un database all'interno del cluster AlloyDB.
Corpo JSON della richiesta:
{ "gcsUri": "gs://BUCKET_NAME/PATH_TO_SQL_FILE", "database": "DATABASE_NAME", "user": "USER", "sqlImportOptions": {} }Per inviare la richiesta, espandi una di queste opzioni:
curl (Linux, macOS o Cloud Shell)
Salva il corpo della richiesta in un file denominato
request.jsoned 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/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID:import"PowerShell (Windows)
Salva il corpo della richiesta in un file denominato
request.jsoned 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/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID:import"| Select-Object -Expand ContentRicevi una risposta JSON simile alla seguente:
Risposta
{ "name": "projects/PROJECT_ID/locations/LOCATION_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.alloydb.v1.OperationMetadata", "createTime": "2025-01-04T13:12:32.363393723Z", "target": "projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID", "verb": "import", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }Per utilizzare un utente diverso per l'importazione, specifica la proprietà dell'utente.
Se non hai bisogno di conservare le autorizzazioni IAM impostate in precedenza, rimuovile.
Per l'elenco completo dei parametri della richiesta, consulta
clusters.import.
Controlla lo stato di un'operazione di importazione
Per controllare lo stato di un'operazione di importazione, segui questi passaggi:
gcloud
Esegui questo comando utilizzando gcloud alloydb operations describe:
gcloud alloydb operations describe OPERATION_ID --region=REGIONPuoi anche elencare i dettagli di un'operazione specifica o annullarla. Per ulteriori informazioni su questo comando, consulta la pagina di riferimento del comando gcloud alloydb operations.
REST v1
Utilizza il metodo GET e il seguente URL:
GET https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID
Per saperne di più, consulta get.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- REGION: la regione in cui è stato eseguito il deployment del cluster AlloyDB.
- PROJECT_ID: l'ID progetto
- OPERATION_ID: l'ID dell'operazione di importazione. Per saperne di più, consulta Prima di iniziare.
Per inviare la richiesta, espandi una di queste opzioni:
curl (Linux, macOS o Cloud Shell)
Esegui questo comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID
PowerShell (Windows)
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID" | Select-Object -Expand Content
In caso di esito positivo, il corpo della risposta contiene un'istanza di Operation.
Passaggi successivi
- Scopri come importare un file CSV.
- Scopri come annullare un'operazione di importazione.