Questa pagina descrive l'esportazione e l'importazione di dati nelle istanze Cloud SQL utilizzando file di dump SQL.
Prima di iniziare
Le esportazioni utilizzano le risorse del database, ma non interferiscono con le normali operazioni del database, a meno che l'istanza non sia sottoposta a provisioning insufficiente.
Per le best practice, consulta Best practice per l'importazione e l'esportazione dei dati.
Dopo aver completato un'operazione di importazione, verifica i risultati.
Esporta i dati da Cloud SQL per PostgreSQL
Ruoli e autorizzazioni richiesti per l'esportazione da Cloud SQL per PostgreSQL
Per esportare i dati da Cloud SQL in Cloud Storage, l'utente che avvia l'esportazione deve avere uno dei seguenti ruoli:
- Il ruolo Editor Cloud SQL
- Un ruolo personalizzato, che include le seguenti autorizzazioni:
cloudsql.instances.getcloudsql.instances.export
Inoltre, il account di servizio dell'istanza Cloud SQL deve disporre di uno dei seguenti ruoli:
- Il ruolo
storage.objectAdminIdentity and Access Management (IAM) - Un ruolo personalizzato, incluse le seguenti autorizzazioni:
storage.objects.createstorage.objects.list(solo per l'esportazione di file in parallelo)storage.objects.delete(solo per l'esportazione parallela dei file)
Per assistenza con i ruoli IAM, consulta Identity and Access Management.
Esporta in un file di dump SQL da Cloud SQL per PostgreSQL
Quando utilizzi Cloud SQL per eseguire un'esportazione, che sia dalla consoleGoogle Cloud , da gcloud CLI o dall'API, utilizzi l'utilitàpg_dump con le opzioni necessarie per garantire che il file di esportazione risultante sia valido per l'importazione di nuovo in Cloud SQL.
Se prevedi di importare i dati in Cloud SQL, devi seguire le istruzioni fornite in Esportazione dei dati da un server di database esterno in modo che il file di dump SQL sia formattato correttamente per Cloud SQL.
Per esportare i dati da un database in un'istanza Cloud SQL in un file di dump SQL in un bucket Cloud Storage:
Console
-
Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.
- Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
- Fai clic su Esporta.
- Nella sezione Formato file, fai clic su SQL per creare un file di dump SQL.
- Nella sezione Dati da esportare, utilizza il menu a discesa Database per selezionare il database da cui vuoi esportare i dati.
- (Facoltativo) Seleziona Esegui l'offload dell'esportazione in un'istanza temporanea per consentire l'esecuzione di altre operazioni mentre l'esportazione è in corso.
- Nella sezione Destinazione, seleziona Sfoglia per cercare un bucket Cloud Storage o una cartella per l'esportazione.
- Fai clic su Esporta per avviare l'esportazione.
gcloud
- Crea un bucket Cloud Storage.
- Trova il account di servizio per l'istanza Cloud SQL da cui stai eseguendo l'esportazione. Puoi farlo eseguendo il comando
gcloud sql instances describe. Cerca il camposerviceAccountEmailAddressnell'output.gcloud sql instances describe INSTANCE_NAME
- Utilizza
gcloud storage buckets add-iam-policy-bindingper concedere il ruolo IAMstorage.objectAdminal account di servizio. Per assistenza sull'impostazione delle autorizzazioni IAM, consulta Utilizzo delle autorizzazioni IAM. - Esporta il database nel bucket Cloud Storage:
gcloud sql export sql INSTANCE_NAME gs://BUCKET_NAME/sqldumpfile.gz \ --database=DATABASE_NAME \ --offload
Il comando
export sqlnon contiene trigger o stored procedure, ma contiene viste. Per esportare trigger e/o stored procedure, utilizza lo strumento pg_dump.Per saperne di più sull'utilizzo del comando
export sql, consulta la pagina di riferimento del comandosql export sql. - Se non devi conservare il ruolo IAM che hai impostato in precedenza, revocalo ora.
REST v1
- Crea un bucket per l'esportazione:
gcloud storage buckets create gs://BUCKET_NAME --project=PROJECT_NAME --location=LOCATION_NAME
Questo passaggio non è obbligatorio, ma è vivamente consigliato per non aprire l'accesso ad altri dati.
- Fornisci alla tua istanza il ruolo IAM
storage.objectAdminper il tuo bucket. Per assistenza con l'impostazione delle autorizzazioni IAM, consulta Utilizzo delle autorizzazioni IAM. - Esporta il database:
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID progetto
- INSTANCE_ID: l'ID istanza
- BUCKET_NAME: il nome del bucket Cloud Storage
- PATH_TO_DUMP_FILE: il percorso del file di dump SQL
- DATABASE_NAME_1: il nome di un database all'interno dell'istanza Cloud SQL
- DATABASE_NAME_2: il nome di un database all'interno dell'istanza Cloud SQL
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/export
Corpo JSON della richiesta:
{ "exportContext": { "fileType": "SQL", "uri": "gs://BUCKET_NAME/PATH_TO_DUMP_FILE", "databases": ["DATABASE_NAME"], "offload": TRUE | FALSE, "sqlExportOptions": { "clean": [TRUE|FALSE], "ifExists": [TRUE|FALSE] } } }Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
- Se non hai bisogno di conservare il ruolo IAM che hai impostato in precedenza, rimuovilo ora.
REST v1beta4
- Crea un bucket per l'esportazione:
gcloud storage buckets create gs://BUCKET_NAME --project=PROJECT_NAME --location=LOCATION_NAME
Questo passaggio non è obbligatorio, ma è vivamente consigliato per non aprire l'accesso ad altri dati.
- Fornisci all'istanza il ruolo IAM
storage.objectAdminper il tuo bucket. Per assistenza con l'impostazione delle autorizzazioni IAM, consulta Utilizzo delle autorizzazioni IAM. - Esporta il database:
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID progetto
- INSTANCE_ID: l'ID istanza
- BUCKET_NAME: il nome del bucket Cloud Storage
- PATH_TO_DUMP_FILE: il percorso del file di dump SQL
- DATABASE_NAME_1: il nome di un database all'interno dell'istanza Cloud SQL
- DATABASE_NAME_2: il nome di un database all'interno dell'istanza Cloud SQL
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/export
Corpo JSON della richiesta:
{ "exportContext": { "fileType": "SQL", "uri": "gs://BUCKET_NAME/PATH_TO_DUMP_FILE", "databases": ["DATABASE_NAME"], "offload": TRUE | FALSE, "sqlExportOptions": { "clean": [TRUE|FALSE], "ifExists": [TRUE|FALSE] } } }Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
- Se non hai bisogno di conservare il ruolo IAM che hai impostato in precedenza, revocalo ora.
Importa i dati in Cloud SQL per PostgreSQL
Ruoli e autorizzazioni richiesti per l'importazione in Cloud SQL per PostgreSQL
Per importare i dati da Cloud Storage in Cloud SQL, l'utente che avvia l'importazione deve avere uno dei seguenti ruoli:
- Il ruolo Cloud SQL Admin
- Un ruolo personalizzato, che include le seguenti autorizzazioni:
cloudsql.instances.getcloudsql.instances.import
Inoltre, il account di servizio dell'istanza Cloud SQL deve disporre di uno dei seguenti ruoli:
- Il ruolo IAM
storage.objectAdmin - Un ruolo personalizzato, incluse le seguenti autorizzazioni:
storage.objects.getstorage.objects.list(solo per l'importazione parallela dei file)
Per assistenza con i ruoli IAM, consulta Identity and Access Management.
Importa un file di dump SQL in Cloud SQL per PostgreSQL
I file SQL sono file di testo normale con una sequenza di comandi SQL.
Console
-
Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.
- Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
- Fai clic su Importa.
- Nella sezione Formato file, seleziona SQL.
- Nella sezione Seleziona file di origine, inserisci il percorso del bucket e del file di dump SQL da utilizzare per l'importazione, vai a un file esistente o carica un file locale.
Puoi importare un file compresso (
.gz) o non compresso (.sql). Nella sezione Destinazione, seleziona il database in cui vuoi importare i dati.
In questo modo, Cloud SQL esegue l'istruzione
USE DATABASEprima dell'importazione.Se vuoi specificare un utente per eseguire l'importazione, selezionalo.
Se il file di importazione contiene istruzioni che devono essere eseguite da un utente specifico, utilizza questo campo per specificare l'utente.
- Fai clic su Importa per avviare l'importazione.
gcloud
- Crea un bucket Cloud Storage.
Carica il file nel bucket.
Per assistenza con il caricamento di file nei bucket, consulta Caricamento di oggetti.
- Descrivi l'istanza in cui stai eseguendo l'importazione:
gcloud sql instances describe INSTANCE_NAME
- Copia il campo
serviceAccountEmailAddress. - Utilizza
gcloud storage buckets add-iam-policy-bindingper concedere il ruolo IAMstorage.objectAdminal account di servizio per il bucket. Per assistenza con l'impostazione delle autorizzazioni IAM, consulta Utilizzo delle autorizzazioni IAM.gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member=serviceAccount:SERVICE-ACCOUNT \ --role=roles/storage.objectAdmin
- Importa il database:
gcloud sql import sql INSTANCE_NAME gs://BUCKET_NAME/IMPORT_FILE_NAME \ --database=DATABASE_NAME
Per informazioni sull'utilizzo del comando
import sql, consulta la pagina di riferimento del comandosql import sql.Se il comando restituisce un errore come
ERROR_RDBMS, controlla le autorizzazioni. Questo errore è spesso dovuto a problemi di autorizzazione. - Se non devi conservare le autorizzazioni IAM che hai
impostato in precedenza, rimuovile utilizzando
gcloud storage buckets remove-iam-policy-binding.
REST v1
-
Crea un file di dump SQL. Le istruzioni collegate impostano determinati flag che rendono il file di dump compatibile con Cloud SQL.
- Se importi dati da un server PostgreSQL on-premise:
- Crea un file di dump SQL seguendo le istruzioni riportate in Esportazione dei dati utilizzando pg_dump.
- Crea un bucket in Cloud Storage seguendo le istruzioni riportate in Crea bucket.
- Carica il file di dump SQL nel bucket Cloud Storage utilizzando la procedura descritta in Caricare oggetti.
- Crea un bucket Cloud Storage.
Carica il file nel bucket.
Per assistenza sul caricamento di file nei bucket, consulta Caricamento di oggetti.
- Fornisci alla tua istanza i ruoli IAM
storage.objectAdmineobjectViewerper il tuo bucket. Per assistenza con l'impostazione delle autorizzazioni IAM, consulta Utilizzo delle autorizzazioni IAM. - Importa il file di dump:
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- project-id: l'ID progetto
- instance-id: l'ID istanza
- bucket_name: il nome del bucket Cloud Storage
- path_to_sql_file: il percorso del file SQL
- database_name: il nome di un database all'interno dell'istanza Cloud SQL
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/import
Corpo JSON della richiesta:
{ "importContext": { "fileType": "SQL", "uri": "gs://bucket_name/path_to_sql_file", "database": "database_name" } }Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
Per utilizzare un utente diverso per l'importazione, specifica la proprietà
Per l'elenco completo dei parametri della richiesta, consulta la pagina instances:import.importContext.importUser. - Se non hai bisogno di conservare le autorizzazioni IAM impostate in precedenza, rimuovile ora.
REST v1beta4
-
Crea un file di dump SQL. Le istruzioni collegate impostano determinati flag che rendono il file di dump compatibile con Cloud SQL.
- Se importi dati da un server PostgreSQL on-premise:
- Crea un file di dump SQL seguendo le istruzioni riportate in Esportazione di dati utilizzando pg_dump.
- Crea un bucket in Cloud Storage seguendo le istruzioni riportate in Crea bucket.
- Carica il file di dump SQL nel bucket Cloud Storage utilizzando la procedura descritta in Carica oggetti.
- Crea un bucket Cloud Storage.
Carica il file nel bucket.
Per assistenza sul caricamento di file nei bucket, consulta Caricamento di oggetti.
- Fornisci alla tua istanza il ruolo IAM
storage.objectAdminper il tuo bucket. Per assistenza con l'impostazione delle autorizzazioni IAM, consulta Utilizzo delle autorizzazioni IAM. - Importa il file di dump:
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- project-id: l'ID progetto
- instance-id: l'ID istanza
- bucket_name: il nome del bucket Cloud Storage
- path_to_sql_file: il percorso del file SQL
- database_name: il nome di un database all'interno dell'istanza Cloud SQL
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/import
Corpo JSON della richiesta:
{ "importContext": { "fileType": "SQL", "uri": "gs://bucket_name/path_to_sql_file", "database": "database_name" } }Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
Per utilizzare un utente diverso per l'importazione, specifica la proprietà
Per l'elenco completo dei parametri della richiesta, consulta la pagina instances:import.importContext.importUser. - Se non hai bisogno di conservare le autorizzazioni IAM che hai impostato in precedenza, rimuovile ora.
Passaggi successivi
- Scopri come controllare lo stato delle operazioni di importazione ed esportazione.
- Scopri di più sulle best practice per l'importazione e l'esportazione dei dati.
- Scopri di più su Cloud Storage.
- Problemi noti relativi alle importazioni e alle esportazioni.