Esportazione e importazione mediante file di dump SQL

Questa pagina descrive l'esportazione e l'importazione dei dati nelle istanze Cloud SQL utilizzando nei file di dump SQL.

Prima di iniziare

Le esportazioni utilizzano risorse di database, ma non interferiscono con il normale database a meno che l'istanza non abbia un underprovisioning.

Per le best practice, vedi Best practice per l'importazione e Esportazione dei dati.

Dopo aver completato un'operazione di importazione, verifica il che consentono di analizzare i dati e visualizzare i risultati.

Esporta i dati da Cloud SQL per PostgreSQL

Ruoli e autorizzazioni richiesti per l'esportazione da Cloud SQL per PostgreSQL

Per esportare dati da Cloud SQL in Cloud Storage, l'utente che avvia l'esportazione deve avere uno dei seguenti ruoli:

Inoltre, l'account di servizio per l'istanza Cloud SQL deve avere uno dei seguenti ruoli:

  • Ruolo di Identity and Access Management (IAM) di storage.objectAdmin
  • Un ruolo personalizzato che includa le seguenti autorizzazioni:
    • storage.objects.create
    • storage.objects.list (solo per esportare file in parallelo)
    • storage.objects.delete (solo per esportare file in parallelo)

Per assistenza con per 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, sia dalla nella console Google Cloud, gcloud CLI o l'API, utilizzando l'app pg_dump con le opzioni necessarie per garantire che il file di esportazione risultante venga valida per l'importazione nuovamente in Cloud SQL.

Se prevedi di importare i dati in Cloud SQL, devi seguire le Istruzioni fornite in Esportazione di dati da un server di database esterno in modo che il file di dump SQL sia formattato correttamente per Cloud SQL.

a esportare i dati da un database su un'istanza Cloud SQL in un file di dump SQL in un bucket Cloud Storage:

Console

  1. Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
  3. Fai clic su Esporta.
  4. Nella sezione Formato file, fai clic su SQL per creare un file di dump SQL.
  5. Nella sezione Dati da esportare, utilizza il menu a discesa per selezionare il database da cui vuoi eseguire l'esportazione.
  6. Nella sezione Destinazione, seleziona Sfoglia per cercare un il bucket o la cartella Cloud Storage per l'esportazione.
  7. Fai clic su Esporta per avviare l'esportazione.

gcloud

  1. Crea un bucket Cloud Storage.
  2. Trova l'account di servizio per l'istanza Cloud SQL che stai esportando da cui proviene. Puoi farlo eseguendo gcloud sql instances describe . Cerca il campo serviceAccountEmailAddress nella come output.
    gcloud sql instances describe INSTANCE_NAME
      
  3. Utilizza gsutil iam per concedere il ruolo IAM storage.objectAdmin a l'account di servizio. Per assistenza per l'impostazione di IAM autorizzazioni, consulta Utilizzo delle autorizzazioni IAM.
  4. Esporta il database nel tuo 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 né è archiviato ma contiene viste. Per esportare i trigger e/o le stored procedure, utilizza la pg_dump.

    Per ulteriori informazioni sull'utilizzo del comando export sql, consulta le sql export sql pagina di riferimento per i comandi.

  5. Se non devi conservare il ruolo IAM impostato in precedenza, revoke ora.

REST v1

  1. 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 aprirli l'accesso a qualsiasi altro dato.

  2. Fornisci alla tua istanza il ruolo IAM legacyBucketWriter per del bucket. Per assistenza sull'impostazione delle autorizzazioni IAM, consulta Utilizzare Autorizzazioni IAM.
  3. Esporta il database:

    Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

    • PROJECT_ID: 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 delle seguenti opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

  4. Se non devi mantenere il ruolo IAM, impostato in precedenza, rimuovilo ora.
Per l'elenco completo dei parametri per la richiesta, vedi instances:export.

REST v1beta4

  1. 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 aprirli l'accesso a qualsiasi altro dato.

  2. Fornisci alla tua istanza il ruolo IAM storage.objectAdmin per del bucket. Per assistenza sull'impostazione delle autorizzazioni IAM, consulta Utilizzare Autorizzazioni IAM.
  3. Esporta il database:

    Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

    • PROJECT_ID: 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 delle seguenti opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

  4. Se non devi conservare il ruolo IAM impostato in precedenza, revoke ora.
Per l'elenco completo dei parametri per la richiesta, vedi instances:export.

Importa dati in Cloud SQL per PostgreSQL

Ruoli e autorizzazioni richiesti per l'importazione in Cloud SQL per PostgreSQL

Per importare dati da Cloud Storage a Cloud SQL, l'utente che avvia l'importazione deve avere uno dei seguenti ruoli:

Inoltre, l'account di servizio per l'istanza Cloud SQL deve avere uno dei seguenti ruoli:

  • Il ruolo IAM storage.objectAdmin
  • Un ruolo personalizzato che includa le seguenti autorizzazioni:
    • storage.objects.get
    • storage.objects.list (solo per importare file in parallelo)

Per assistenza con per 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

  1. Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
  3. Fai clic su Importa.
  4. Nella sezione Scegli il file da cui importare i dati, inserisci il percorso al bucket e al file di dump SQL da utilizzare per l'importazione oppure passa a un .

    Puoi importare un file compresso (.gz) o non compresso (.sql).

  5. In Formato, seleziona SQL.
  6. Seleziona il database in cui importare i dati.

    In questo modo Cloud SQL esegue USE DATABASE prima dell'importazione.

  7. 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 indicare tale utente.

  8. Fai clic su Importa per avviare l'importazione.

gcloud

  1. Crea un bucket Cloud Storage.
  2. Carica il file nel bucket.

    Per informazioni sul caricamento di file nei bucket, consulta Caricamento di oggetti.

  3. Descrivi l'istanza in cui esegui l'importazione:
    gcloud sql instances describe INSTANCE_NAME
    
  4. Copia il campo serviceAccountEmailAddress.
  5. Usa gsutil iam per concedere storage.objectAdmin ruolo IAM per l'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.
  6. 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 le sql import sql pagina di riferimento per i comandi.

    Se il comando restituisce un errore come ERROR_RDBMS, esamina il autorizzazioni; questo errore è spesso dovuto a problemi di autorizzazioni.

  7. Se non devi conservare le autorizzazioni IAM, impostati in precedenza, rimuovili utilizzando gsutil iam.

REST v1

  1. Creare un file di dump SQL. Le istruzioni collegate impostano determinati flag che rendono il file di dump compatibile con Cloud SQL.

    • Se importi i dati da un server PostgreSQL on-premise:
      1. Crea un file di dump SQL utilizzando consulta le istruzioni riportate in Esportare i dati utilizzando pg_dump.
      2. Crea un bucket in Cloud Storage utilizzando le istruzioni in Crea bucket.
      3. Carica il file di dump SQL nel bucket Cloud Storage utilizzando in Caricare oggetti.
  2. Crea un bucket Cloud Storage.
  3. Carica il file nel bucket.

    Per informazioni sul caricamento di file nei bucket, consulta Caricamento di oggetti.

  4. Fornisci alla tua istanza legacyBucketWriter e objectViewer ruoli IAM per i tuoi di sincronizzare la directory di una VM con un bucket. Per assistenza sull'impostazione delle autorizzazioni IAM, consulta Utilizzo delle autorizzazioni IAM.
  5. 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: 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 delle seguenti opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

    Per utilizzare un utente diverso per l'importazione, specifica importContext.importUser proprietà.

    Per l'elenco completo dei parametri per la richiesta, vedi instances:import.
  6. Se non devi conservare le autorizzazioni IAM, impostate in precedenza, rimuovile ora.

REST v1beta4

  1. Creare un file di dump SQL. Le istruzioni collegate impostano determinati flag che rendono il file di dump compatibile con Cloud SQL.

    • Se importi i dati da un server PostgreSQL on-premise:
      1. Crea un file di dump SQL utilizzando consulta le istruzioni riportate in Esportare i dati utilizzando pg_dump.
      2. Crea un bucket in Cloud Storage utilizzando le istruzioni in Crea bucket.
      3. Carica il file di dump SQL nel bucket Cloud Storage utilizzando in Caricare oggetti.
  2. Crea un bucket Cloud Storage.
  3. Carica il file nel bucket.

    Per informazioni sul caricamento di file nei bucket, consulta Caricamento di oggetti.

  4. Fornisci alla tua istanza storage.objectAdmin ruolo IAM per di sincronizzare la directory di una VM con un bucket. Per assistenza sull'impostazione delle autorizzazioni IAM, consulta Utilizzo delle autorizzazioni IAM.
  5. 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: 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 delle seguenti opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

    Per utilizzare un utente diverso per l'importazione, specifica importContext.importUser proprietà.

    Per l'elenco completo dei parametri per la richiesta, vedi instances:import.
  6. Se non devi conservare le autorizzazioni IAM, impostate in precedenza, rimuovile ora.

Passaggi successivi