Questa pagina descrive l'esportazione e l'importazione dei dati nelle istanze Cloud SQL utilizzando i 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 non sia stato eseguito un provisioning insufficiente dell'istanza.
Per le best practice, consulta le best practice per l'importazione e l'esportazione dei dati.
Dopo aver completato un'operazione di importazione, verifica i risultati.
Esportare i dati da Cloud SQL per MySQL
Autorizzazioni e ruoli richiesti per l'esportazione da Cloud SQL per MySQL
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,
incluse le seguenti autorizzazioni:
cloudsql.instances.get
cloudsql.instances.export
Inoltre, l'account di servizio per l'istanza Cloud SQL deve avere uno dei seguenti ruoli:
- Il ruolo
storage.objectAdmin
Identity and Access Management (IAM) - Un ruolo personalizzato, incluse le seguenti autorizzazioni:
storage.objects.create
storage.objects.list
(solo per l'esportazione di file in parallelo)storage.objects.delete
(solo per l'esportazione di file in parallelo)
Per assistenza con i ruoli IAM, consulta Identity and Access Management.
Esporta in un file di dump SQL da Cloud SQL per MySQL
Per creare un file di dump SQL, devi esportare i dati da Cloud SQL a Cloud Storage. Una volta che il file è in Cloud Storage, puoi importarlo in un altro database Cloud SQL. Puoi anche scaricare i dati da Cloud Storage nel tuo ambiente locale se vuoi accedervi localmente.L'esportazione da Cloud SQL utilizza l'utilità mysqldump con le opzioni --single-transaction
e --hex-blob
. Con l'opzione --single-transaction
, mysqldump
avvia una transazione prima dell'esecuzione. Anziché bloccare l'intero database, questa operazione consente a mysqldump
di leggerlo nello stato attuale, creando un dump dei dati coerente.
Se il file di dump SQL contiene clausole DEFINER (views, trigger, stored_procedures e così via), a seconda dell'ordine di esecuzione di queste istruzioni, l'utilizzo di questo file per l'importazione potrebbe non riuscire. Scopri di più sull'utilizzo di DEFINER e sulle potenziali soluzioni alternative in Cloud SQL.
Per esportare i dati da un database su un'istanza Cloud SQL a 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, fai clic su Uno o più database in questa istanza per esportare database specifici.
- Utilizza il menu a discesa per selezionare i database da cui eseguire l'esportazione.
- Nella sezione Destinazione, seleziona Sfoglia per cercare un bucket o una cartella Cloud Storage per l'esportazione.
- Fai clic su Esporta per avviare l'esportazione.
gcloud
- Crea un bucket Cloud Storage.
- Trova l'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 camposerviceAccountEmailAddress
nell'output.gcloud sql instances describe INSTANCE_NAME
- Utilizza
gsutil iam
per concedere il ruolo IAMstorage.objectAdmin
all'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 sql
non contiene trigger o stored procedure, ma contiene viste. Per esportare trigger e/o stored procedure, utilizza lo strumento mysqldump.Per saperne di più sull'utilizzo del comando
export sql
, consulta la pagina di riferimento del comandosql export sql
. - Se non devi mantenere il ruolo IAM che hai impostato in precedenza, revoke ora.
REST v1
- Crea un bucket per l'esportazione:
gsutil mb -p PROJECT_NAME -l LOCATION_NAME gs://BUCKET_NAME
Questo passaggio non è obbligatorio, ma vivamente consigliato, quindi non consentire l'accesso ad altri dati.
- Fornisci all'istanza il ruolo IAM
legacyBucketWriter
per il bucket. Per assistenza sull'impostazione delle autorizzazioni IAM, consulta Utilizzo delle autorizzazioni IAM. - Esporta il database:
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- project-id: l'ID progetto
- instance-id: l'ID istanza
- bucket_name: 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
- offload: abilita l'esportazione serverless. Imposta su
true
per utilizzare l'esportazione serverless.
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 } }
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
- Se non hai bisogno di mantenere il ruolo IAM impostato in precedenza, rimuovilo ora.
REST v1beta4
- Crea un bucket per l'esportazione:
gsutil mb -p PROJECT_NAME -l LOCATION_NAME gs://BUCKET_NAME
Questo passaggio non è obbligatorio, ma vivamente consigliato, quindi non consentire l'accesso ad altri dati.
- Fornisci all'istanza il ruolo IAM
storage.objectAdmin
per il bucket. Per assistenza sull'impostazione delle autorizzazioni IAM, consulta Utilizzo delle autorizzazioni IAM. - Esporta il database:
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- project-id: l'ID progetto
- instance-id: l'ID istanza
- bucket_name: 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
- offload: abilita l'esportazione serverless. Imposta su
true
per utilizzare l'esportazione serverless.
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 } }
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
- Se non devi mantenere il ruolo IAM che hai impostato in precedenza, revoke ora.
Esporta dal server MySQL locale con mysqldump
Se esporti dati da un database MySQL on-premise per l'importazione in un database Cloud SQL, devi utilizzare l'utilità mysqldump
con i seguenti flag:
--databases
Devi utilizzare l'opzione--databases
per specificare un elenco esplicito di database da esportare e questo elenco non deve contenere il database di sistemamysql
.--hex-blob
Se il database contiene campi binari, devi utilizzare questo flag per assicurarti che i campi binari vengano importati correttamente.--set-gtid-purged=OFF
Le informazioni GTID non devono essere incluse nel file di dump SQL e il logging binario non deve essere disabilitato dal file di dump SQL. (non è necessaria per MySQL 5.5 o la replica esterna).--single-transaction
Avvia una transazione prima dell'esecuzione. Anziché bloccare l'intero database, ciò consente a mysqldump di leggerlo nello stato attuale, creando un dump dei dati coerente.
Da una riga di comando, esegui mysqldump
:
mysqldump --databases DATABASE_NAME -h INSTANCE_IP -u USERNAME -p \ --hex-blob --single-transaction --set-gtid-purged=OFF \ --default-character-set=utf8mb4 > SQL_FILE.sql
Per ricevere assistenza per mysqldump
, consulta la
documentazione di riferimento di mysqldump.
Replica esterna in Cloud SQL per MySQL
Per creare un file di dump da utilizzare nella configurazione di un server esterno, consulta Replica da un server esterno.
Importa i dati in Cloud SQL per MySQL
Autorizzazioni e ruoli richiesti per l'importazione in Cloud SQL per MySQL
Per importare dati da Cloud Storage in Cloud SQL, l'utente che avvia l'importazione deve avere uno dei seguenti ruoli:
- Il ruolo Editor Cloud SQL
- Un ruolo personalizzato,
incluse le seguenti autorizzazioni:
cloudsql.instances.get
cloudsql.instances.import
Inoltre, l'account di servizio per l'istanza Cloud SQL deve avere uno dei seguenti ruoli:
- Il ruolo IAM
storage.objectAdmin
- Un ruolo personalizzato, incluse le seguenti autorizzazioni:
storage.objects.get
storage.objects.list
(solo per importare file in parallelo)
Per assistenza con i ruoli IAM, consulta Identity and Access Management.
Importa un file di dump SQL in Cloud SQL per MySQL
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 Scegli il file da cui importare i dati, inserisci il percorso del bucket e del file di dump SQL da utilizzare per l'importazione oppure passa a un file esistente.
Puoi importare un file compresso (
.gz
) o non compresso (.sql
). - In Formato, seleziona SQL.
Seleziona il database in cui vuoi importare i dati.
In questo modo Cloud SQL esegue l'istruzione
USE DATABASE
prima dell'importazione.Se vuoi specificare un utente che esegua l'importazione, seleziona l'utente.
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 sul caricamento dei file nei bucket, consulta la pagina Caricamento di oggetti.
- Descrivi l'istanza in cui stai eseguendo l'importazione:
gcloud sql instances describe INSTANCE_NAME
- Copia il campo
serviceAccountEmailAddress
. - Utilizza
gsutil iam
per concedere il ruolo IAMstorage.objectAdmin
all'account di servizio per il bucket.gsutil iam ch serviceAccount:SERVICE-ACCOUNT:objectAdmin \ gs://BUCKET_NAME
Per assistenza sull'impostazione delle autorizzazioni IAM, consulta Utilizzo delle autorizzazioni IAM. - 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
, esamina le autorizzazioni; spesso questo errore è dovuto a problemi di autorizzazioni. - Se non è necessario conservare le autorizzazioni IAM impostate in precedenza, rimuovile utilizzando
gsutil iam
.
REST v1
-
Creare 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 MySQL on-premise:
- Crea un file di dump SQL.
- Crea un bucket in Cloud Storage.
- Carica il file di dump SQL nel bucket Cloud Storage.
- Se importi i dati da un'altra istanza di Cloud SQL, consulta le istruzioni in Esportare i dati da Cloud SQL in un file di dump SQL.
- Crea un bucket Cloud Storage.
Carica il file nel bucket.
Per assistenza sul caricamento dei file nei bucket, consulta la pagina Caricamento di oggetti.
- Fornisci all'istanza i ruoli IAM
legacyBucketWriter
eobjectViewer
per il tuo bucket. Per assistenza sull'impostazione delle autorizzazioni IAM, consulta Utilizzo delle autorizzazioni IAM. - Importa il file di dump:
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- project-id: l'ID progetto
- instance-id: l'ID istanza
- bucket_name: 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 l'elenco completo dei parametri della richiesta, vedi la pagina instances:import. - Se non hai bisogno di conservare le autorizzazioni IAM impostate in precedenza, rimuovile ora.
REST v1beta4
-
Creare 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 MySQL on-premise:
- Crea un file di dump SQL.
- Crea un bucket in Cloud Storage.
- Carica il file di dump SQL nel bucket Cloud Storage.
- Se importi i dati da un'altra istanza di Cloud SQL, consulta le istruzioni in Esportare i dati da Cloud SQL in un file di dump SQL.
- Crea un bucket Cloud Storage.
Carica il file nel bucket.
Per assistenza sul caricamento dei file nei bucket, consulta la pagina Caricamento di oggetti.
- Fornisci all'istanza il ruolo IAM
storage.objectAdmin
per il tuo bucket. Per assistenza sull'impostazione delle autorizzazioni IAM, consulta Utilizzo delle autorizzazioni IAM. - Importa il file di dump:
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- project-id: l'ID progetto
- instance-id: l'ID istanza
- bucket_name: 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 l'elenco completo dei parametri della richiesta, vedi la pagina instances:import. - Se non hai bisogno di conservare le autorizzazioni IAM impostate 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 a importazioni ed esportazioni.