Esportazione e importazione mediante file BAK e file di log delle transazioni

Questa pagina descrive l'esportazione e l'importazione di dati nelle istanze Cloud SQL utilizzando i file BAK e l'importazione di dati nelle istanze Cloud SQL utilizzando i file di log delle transazioni.

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

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.

Esportare dati da Cloud SQL per SQL Server

Cloud SQL supporta l'esportazione dei file BAK incorporati.

Se vuoi creare una nuova istanza da un file esportato, valuta la possibilità di ripristinare da un backup in un'altra istanza o di clonare l'istanza.

Cloud SQL esegue un backup completo del database selezionato durante un'operazione di esportazione.

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

Per esportare i 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:

  • Il ruolo storage.objectAdmin Identity and Access Management (IAM)
  • Un ruolo personalizzato, che include le seguenti autorizzazioni:
    • storage.objects.create
    • storage.objects.list (solo per l'esportazione a strisce)
    • storage.objects.delete (solo per l'esportazione a strisce)
    • storage.buckets.getIamPolicy (solo per l'esportazione dei log delle transazioni)
    • storage.buckets.setIamPolicy (solo per l'esportazione dei log delle transazioni)

Per assistenza sui ruoli IAM, consulta Identity and Access Management.

Esportare i dati in un file BAK da Cloud SQL per SQL Server

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 BAK.
  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 bucket o una 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 dell'istanza Cloud SQL da cui stai esportando. A tale scopo, puoi eseguire il comando gcloud sql instances describe. Cerca il campo serviceAccountEmailAddress nell'output.
    gcloud sql instances describe INSTANCE_NAME
      
  3. Utilizza gcloud storage buckets add-iam-policy-binding per concedere il ruolo IAM storage.objectAdmin all'account di servizio. Per ulteriori informazioni sull'impostazione delle autorizzazioni IAM, consulta Utilizzare le autorizzazioni IAM.
  4. Esporta il database:
    gcloud sql export bak INSTANCE_NAME gs://BUCKET_NAME/FILENAME \
    --database=DATABASE_NAME
      

    Per informazioni sull'utilizzo del comando gcloud sql export bak, consulta la pagina di riferimento dei comandi.

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

REST v1

  1. Crea un bucket Cloud Storage per l'esportazione.
    gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME

    Questo passaggio non è obbligatorio, ma vivamente consigliato per non consentire l'accesso ad altri dati.

  2. Fornisci all'istanza il legacyBucketWriter ruolo IAM per il tuo bucket. Per ulteriori informazioni sull'impostazione delle autorizzazioni IAM, consulta Utilizzare le autorizzazioni IAM.
  3. Esporta il database:

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

    • 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:

    
    

    Per inviare la richiesta, espandi una di queste opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

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

REST v1beta4

  1. Crea un bucket Cloud Storage per l'esportazione.
    gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME
    

    Questo passaggio non è obbligatorio, ma vivamente consigliato per non consentire l'accesso ad altri dati.

  2. Fornisci all'istanza il storage.objectAdmin ruolo IAM per il tuo bucket. Per ulteriori informazioni sull'impostazione delle autorizzazioni IAM, consulta Utilizzare le autorizzazioni IAM.
  3. Esporta il database:

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

    • 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:

    
    

    Per inviare la richiesta, espandi una di queste opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

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

Esportare i backup differenziali del database

Prima di esportare un backup differenziale del database, devi esportare una base differenziale.

Se altri servizi o funzionalità, come il recupero del punto nel tempo e la replica di lettura, attivano un backup completo tra l'esportazione del backup completo e l'esportazione del backup differenziale, devi attivare di nuovo un'esportazione del backup completo.

Per comprendere meglio, considera il seguente esempio:

  1. Invii una richiesta di backup completo alle 7:00.
  2. Attivi il recupero point-in-time alle 9:00. Viene attivato un backup completo sull'istanza.
  3. Provi a eseguire un backup differenziale alle 17:00. Questa richiesta di esportazione non va a buon fine con un messaggio di errore perché l'ultimo backup completo è stato attivato dal recupero in un determinato momento.

Cloud SQL non supporta le richieste di esportazione del database con --differential-base o --bak-type=DIFF nelle istanze di replica.

gcloud

  1. Crea un bucket Cloud Storage.
  2. Trova l'account di servizio dell'istanza Cloud SQL da cui stai eseguendo l'esportazione. A tale scopo, puoi eseguire il comando gcloud sql instances describe. Cerca il campo serviceAccountEmailAddress nell'output.
    gcloud sql instances describe INSTANCE_NAME
      
  3. Utilizza gcloud storage buckets add-iam-policy-binding per concedere il ruolo IAM storage.objectAdmin all'account di servizio. Per ulteriori informazioni sull'impostazione delle autorizzazioni IAM, consulta Utilizzare le autorizzazioni IAM.
  4. Esporta il database come base differenziale.

    gcloud sql export bak INSTANCE_NAME gs://BUCKET_NAME/DIFFERENTIAL_BASE_FILENAME \
    --database=DATABASE_NAME --differential-base

    Per informazioni sull'utilizzo del comando gcloud sql export bak, consulta la pagina di riferimento dei comandi.

  5. Esporta un backup differenziale.

    gcloud sql export bak INSTANCE_NAME gs://BUCKET_NAME/DIFFERENTIAL_BACKUP_FILENAME \
    --database=DATABASE_NAME --bak-type=DIFF
      

    Per informazioni sull'utilizzo del comando gcloud sql export bak, consulta la pagina di riferimento dei comandi.

  6. Se non devi conservare il ruolo IAM impostato in precedenza, revocation ora.

REST v1

  1. Crea un bucket Cloud Storage per l'esportazione.
    gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME

    Questo passaggio non è obbligatorio, ma vivamente consigliato per non consentire l'accesso ad altri dati.

  2. Fornisci all'istanza il legacyBucketWriter ruolo IAM per il tuo bucket. Per ulteriori informazioni sull'impostazione delle autorizzazioni IAM, consulta Utilizzare le autorizzazioni IAM.
  3. Esporta il backup completo del database come base differenziale.

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

    • PROJECT_ID: l'ID progetto
    • INSTANCE_ID: l'ID istanza
    • BUCKET_NAME: il nome del bucket Cloud Storage
    • PATH_TO_BAK_FILE: il percorso del file BAK SQL
    • DATABASE_NAME: il nome del database all'interno dell'istanza Cloud SQL
    • offload: per attivare e utilizzare l'esportazione serverless, imposta questo valore su TRUE

    Metodo HTTP e URL:

    POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/export

    Corpo JSON della richiesta:

    {
     "exportContext":
       {
          "fileType": "BAK",
          "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE",
          "databases": ["DATABASE_NAME"]
          "offload": TRUE | FALSE
          "bakExportOptions": {
            "differentialBase":true
          }
       }
    }
    

    Per inviare la richiesta, scegli una delle seguenti opzioni:

    curl

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/export"

    PowerShell

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    $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://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/export" | Select-Object -Expand Content

    Dovresti ricevere una risposta JSON simile alla seguente:

  4. Esporta un backup differenziale.

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

    • 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
    • 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": "BAK",
          "uri": "gs://bucket_name/path_to_dump_file",
          "databases": ["database_name"]
          "offload": true | false
          "bakExportOptions": {
            bakType:"DIFF"
          }
    
        }
    }
    

    Per inviare la richiesta, scegli una delle seguenti opzioni:

    curl

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/export"

    PowerShell

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    $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://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/export" | Select-Object -Expand Content

    Dovresti ricevere una risposta JSON simile alla seguente:

  5. Se non devi conservare il ruolo IAM impostato in precedenza, rimuovilo ora.
Per l'elenco completo dei parametri per la richiesta, consulta la pagina instances:export.

REST v1beta4

  1. Crea un bucket Cloud Storage per l'esportazione.
    gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME
    

    Questo passaggio non è obbligatorio, ma vivamente consigliato per non consentire l'accesso ad altri dati.

  2. Fornisci all'istanza il storage.objectAdmin ruolo IAM per il tuo bucket. Per ulteriori informazioni sull'impostazione delle autorizzazioni IAM, consulta Utilizzare le autorizzazioni IAM.
  3. Esporta il backup completo del database come base differenziale.

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

    • 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
    • offload: per attivare e utilizzare l'esportazione serverless, imposta il valore su true.

    Metodo HTTP e URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/export

    Corpo JSON della richiesta:

    {
      "exportContext":
        {
           "fileType": "BAK",
           "uri": "gs://bucket_name/path_to_dump_file",
           "databases": ["database_name"]
           "offload": true | false
           "bakExportOptions": {
             "differentialBase":true
           }
    
         }
    }
    

    Per inviare la richiesta, scegli una delle seguenti opzioni:

    curl

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/export"

    PowerShell

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    $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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/export" | Select-Object -Expand Content

    Dovresti ricevere una risposta JSON simile alla seguente:

  4. Esportare un backup differenziale:

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

    • 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
    • offload: per attivare e utilizzare le esportazioni serverless, imposta questo valore su true.

    Metodo HTTP e URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/export

    Corpo JSON della richiesta:

    {
      "exportContext":
        {
           "fileType": "BAK",
           "uri": "gs://bucket_name/path_to_dump_file",
           "databases": ["database_name"]
           "offload": true | false
           "bakExportOptions": {
            bakType:"DIFF"
           }
    
         }
    }
    

    Per inviare la richiesta, scegli una delle seguenti opzioni:

    curl

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/export"

    PowerShell

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    $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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/export" | Select-Object -Expand Content

    Dovresti ricevere una risposta JSON simile alla seguente:

  5. Se non devi conservare il ruolo IAM impostato in precedenza, revocarlo ora.
Per l'elenco completo dei parametri per la richiesta, consulta la pagina instances:export.

Esportare i log delle transazioni

Puoi esportare i log delle transazioni per le istanze Cloud SQL Enterprise Plus in cui è abilitato il recupero point-in-time (PITR) e i relativi log archiviati in Cloud Storage.

gcloud

  1. Crea un bucket Cloud Storage per l'esportazione.
    gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME

    Questo passaggio non è obbligatorio, ma vivamente consigliato per non consentire l'accesso ad altri dati.

  2. Trova l'account di servizio dell'istanza Cloud SQL da cui stai eseguendo l'esportazione. A tale scopo, puoi eseguire il comando gcloud sql instances describe. Cerca il campo serviceAccountEmailAddress nell'output.
    gcloud sql instances describe INSTANCE_NAME
      
  3. Utilizza gcloud storage buckets add-iam-policy-binding per concedere il ruolo IAM storage.Admin all'account di servizio. Per ulteriori informazioni sull'impostazione delle autorizzazioni IAM, consulta Impostare e gestire i criteri IAM nei bucket.
  4. Esporta i log delle transazioni.

    gcloud sql export bak INSTANCE_NAME gs://BUCKET_NAME/FOLDER_PATH
    --export-log-start-time=START_DATE_AND_TIME /
    --export-log-end-time=END_DATE_AND_TIME /
    --database=DATABASE_NAME --bak-type=TLOG
      

    Per informazioni sull'utilizzo del comando gcloud sql export bak, consulta la pagina di riferimento dei comandi.

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

REST

  1. Crea un bucket Cloud Storage.

    Questo passaggio non è obbligatorio, ma vivamente consigliato per non consentire l'accesso ad altri dati.

  2. Fornisci all'istanza il storage.Admin ruolo IAM per il tuo bucket. Per ulteriori informazioni sull'impostazione delle autorizzazioni IAM, vedi Impostare e gestire i criteri IAM nei bucket.
  3. Esporta i log delle transazioni.

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

    • PROJECT_ID: l'ID progetto.
    • INSTANCE_ID: l'ID istanza.
    • BUCKET_NAME: il nome del bucket Cloud Storage.
    • FOLDER_PATH: il percorso della cartella nel bucket Cloud Storage. Cloud SQL esporta i log delle transazioni in questa cartella.
    • DATABASE_NAME: il nome del database all'interno dell'istanza Cloud SQL.
    • exportLogStartTime: la data e l'ora di inizio dei log delle transazioni da esportare.
    • exportLogEndTime: la data e l'ora di fine dei log delle transazioni da esportare.

    Metodo HTTP e URL:

    POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/export

    Corpo JSON della richiesta:

    {
     "exportContext":
       {
          "fileType": "BAK",
          "uri": "gs://BUCKET_NAME/FOLDER_PATH",
          "databases": ["DATABASE_NAME"]
          "bakExportOptions": {
            bakType:"TLOG"
            exportLogStartTime: START_DATE_AND_TIME
            exportLogEndTime: END_DATE_AND_TIME
          }
       }
    }
    

    Per inviare la richiesta, scegli una delle seguenti opzioni:

    curl

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/export"

    PowerShell

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    $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://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/export" | Select-Object -Expand Content

    Dovresti ricevere una risposta JSON simile alla seguente:

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

Utilizzare l'esportazione a strisce

I vantaggi dell'esportazione a strisce sono i seguenti:

  • Riduzione del tempo necessario per il completamento delle operazioni
  • È possibile esportare database di dimensioni superiori a 5 TB

Un potenziale svantaggio dell'utilizzo dell'esportazione a strisce è che il backup, anziché essere costituito da un unico file, è suddiviso in un insieme di file. Questo insieme è chiamato "set di strisce". Consulta Eseguire il backup dei dispositivi in un set di media a strisce (un set di strisce). In Cloud SQL, esporti in una cartella vuota in Cloud Storage anziché generare un singolo file. Per ulteriori informazioni, consulta Come utilizzare l'esportazione a strisce.

Pianificare le operazioni

L'esportazione a strisce può migliorare le prestazioni delle esportazioni. Tuttavia, se il tuo caso d'uso richiede un singolo file di output o se il tuo database ha una dimensione inferiore a 5 TB e se un rendimento più elevato non è fondamentale, ti consigliamo di utilizzare un'esportazione non suddivisa in parti.

Se decidi di utilizzare l'esportazione a strisce, valuta il numero di strisce. Puoi specificare questo valore nel comando gcloud CLI o nella chiamata all'API REST. Tuttavia, se vuoi un numero ottimale di righe per il rendimento o se non conosci un numero, omettilo. Viene impostato automaticamente un numero ottimale di strisce.

Il numero massimo di strisce attualmente supportato da Cloud SQL per SQL Server è 64.

Come utilizzare l'esportazione a strisce

gcloud

  1. Crea un bucket Cloud Storage.
  2. Trova l'account di servizio dell'istanza Cloud SQL da cui stai esportando. A tale scopo, puoi eseguire il comando gcloud sql instances describe. Cerca il serviceAccountEmailAddress campo nell'output.
    gcloud sql instances describe INSTANCE_NAME
      
  3. Utilizza gcloud storage buckets add-iam-policy-binding per concedere il ruolo IAM storage.objectAdmin all'account di servizio. Per ulteriori informazioni sull'impostazione delle autorizzazioni IAM, consulta Utilizzare le autorizzazioni IAM.
  4. Per esportare il database, specifica il parametro --striped e/o un valore per --stripe_count. L'impostazione di un valore per --stripe_count implica che il parametro --striped sia previsto. Si verifica un errore se specifichi --no-striped, ma specifichi un valore per --stripe_count:
    gcloud beta sql export bak INSTANCE_NAME \
    gs://BUCKET_NAME/STRIPED_EXPORT_FOLDER \
    --database=DATABASE_NAME --striped --stripe_count=NUMBER
      

    Per informazioni sull'utilizzo del comando gcloud beta sql export bak, consulta la pagina di riferimento dei comandi.

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

REST v1

  1. Crea un bucket Cloud Storage per l'esportazione.
    gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME

    Questo passaggio non è obbligatorio, ma vivamente consigliato per non consentire l'accesso ad altri dati.

  2. Fornisci all'istanza il legacyBucketWriter ruolo IAM per il tuo bucket. Per ulteriori informazioni sull'impostazione delle autorizzazioni IAM, consulta Utilizzare le autorizzazioni IAM.
  3. Esporta il database:

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

    • project-id: l'ID progetto
    • instance-id: l'ID istanza
    • bucket_name: il nome del bucket Cloud Storage
    • path_to_folder: il percorso della cartella (nel bucket Cloud Storage) in cui esportare l'insieme a strisce
    • database_name: il nome di un database nell'istanza Cloud SQL
    • true | false: impostato su true per utilizzare l'esportazione a strisce. Se specifichi true senza specificare un numero di strisce, viene impostato automaticamente un numero ottimale di strisce
    • number_of_stripes: il numero di strisce da utilizzare. Se specificato, striped è implicito come true

    Metodo HTTP e URL:

    POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/export

    Corpo JSON della richiesta:

    {
     "exportContext":
       {
          "fileType": "BAK",
          "uri": "gs://bucket_name/path_to_folder",
          "databases": ["database_name"],
          "bakExportOptions": {
            "striped": true | false,
            "stripe_count": ["number_of_stripes"]
          }
        }
    }
    

    Per inviare la richiesta, espandi una di queste opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

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

REST v1beta4

  1. Crea un bucket Cloud Storage per l'esportazione.
    gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME
    

    Questo passaggio non è obbligatorio, ma è vivamente consigliato per non consentire l'accesso ad altri dati.

  2. Fornisci all'istanza il legacyBucketWriter ruolo IAM per il tuo bucket. Per ulteriori informazioni sull'impostazione delle autorizzazioni IAM, consulta Utilizzare le autorizzazioni IAM.
  3. Esporta il database:

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

    • project-id: l'ID progetto
    • instance-id: l'ID istanza
    • bucket_name: il nome del bucket Cloud Storage
    • path_to_folder: il percorso della cartella (nel bucket Cloud Storage) in cui esportare l'insieme a strisce
    • database_name: il nome di un database nell'istanza Cloud SQL
    • true | false: impostato su true per utilizzare l'esportazione a strisce. Se specifichi true senza specificare un numero di strisce, viene impostato automaticamente un numero ottimale di strisce
    • number_of_stripes: il numero di strisce da utilizzare. Se specificato, striped è implicito come true

    Metodo HTTP e URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/export

    Corpo JSON della richiesta:

    {
     "exportContext":
       {
          "fileType": "BAK",
          "uri": "gs://bucket_name/path_to_folder",
          "databases": ["database_name"],
          "bakExportOptions": {
            "striped": true | false,
            "stripe_count": ["number_of_stripes"]
          }
        }
    }
    

    Per inviare la richiesta, espandi una di queste opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

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

Importa in Cloud SQL per SQL Server

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

Per importare i dati da Cloud Storage in 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 include le seguenti autorizzazioni:
    • storage.objects.get
    • storage.objects.list (solo per l'importazione a strisce)

Per assistenza sui ruoli IAM, consulta Identity and Access Management.

Importare dati da un file BAK in Cloud SQL per SQL Server

Per utilizzare l'importazione a strisce, consulta Utilizzare l'importazione a strisce.

Sono disponibili vari framework di importazione. Ad esempio, Cloud SQL per SQL Server supporta la tecnologia CDC (Change Data Capture) per le seguenti versioni del database:

  • SQL Server 2017 Standard
  • SQL Server 2017 Enterprise
  • SQL Server 2019 Standard
  • SQL Server 2019 Enterprise

Quando importi un database abilitato al CDC, il flag KEEP_CDC viene mantenuto.

Se la versione dell'istanza è Microsoft SQL Server Enterprise Edition, puoi importare i file BAK criptati.

Anche le istanze Microsoft SQL Server Standard Edition importano file BAK criptati, ma solo tramite gcloud CLI.

Le uniche estensioni BAK supportate sono .bak e .bak.gz. I backup criptati con GPG non sono attualmente supportati.

Per le istruzioni riportate di seguito, preparati a specificare un nuovo database; non creare un database prima di avviare l'importazione del file BAK.

Per importare i dati in un'istanza Cloud SQL utilizzando un file BAK:

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. Nel campo Scegli un file da cui eseguire l'importazione, inserisci il percorso del bucket e del file BAK da utilizzare per l'importazione.

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

  5. Nella sezione Formato file, seleziona BAK.

  6. Nella sezione Destinazione, specifica il database nell'istanza Cloud SQL in cui vuoi importare il file BAK.
  7. Per avviare l'importazione, fai clic su Importa.

gcloud

  1. Crea un bucket Cloud Storage per l'importazione.

    gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME

    Questo passaggio non è obbligatorio, ma vivamente consigliato per non consentire l'accesso ad altri dati.

  2. Assicurati di aver configurato i ruoli e le autorizzazioni richiesti.
  3. Carica i dati dal file BAK nel bucket.
  4. Descrivi l'istanza in cui stai eseguendo l'importazione:
    gcloud sql instances describe INSTANCE_NAME
  5. Copia il campo serviceAccountEmailAddress.
  6. Utilizza gcloud storage buckets add-iam-policy-binding per concedere il ruolo IAM storage.objectViewer all'account di servizio per il bucket. Per ulteriori informazioni sull'impostazione delle autorizzazioni IAM, consulta Utilizzare le autorizzazioni IAM.
  7. Importa i dati dal file:
    gcloud sql import bak INSTANCE_NAME gs://BUCKET_NAME/FILE_NAME \
    --database=DATABASE_NAME
    Per le importazioni criptate, utilizza il seguente comando:
    gcloud sql import bak INSTANCE_NAME gs://BUCKET_NAME/FILE_NAME
    --database=DATABASE_NAME --cert-path=gs://BUCKET_NAME/CERTIFICATE_NAME
     --pvk-path=gs://BUCKET_NAME/KEY_NAME --prompt-for-pvk-password
  8. Se non devi conservare le autorizzazioni IAM impostate in precedenza, rimuovile utilizzando gcloud storage buckets remove-iam-policy-binding.

REST v1

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

    Per assistenza sul caricamento dei file nei bucket, consulta Caricare oggetti.

  3. Fornisci all'istanza il ruolo IAM storage.objectAdmin per il tuo bucket. Per ulteriori informazioni sull'impostazione delle autorizzazioni IAM, consulta Utilizzare le autorizzazioni IAM.
  4. Importa i dati dal file:

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

    • project-id: l'ID progetto
    • instance-id: l'ID istanza
    • bucket_name: il nome del bucket Cloud Storage
    • path_to_bak_file: il percorso del file BAK
    • 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": "BAK",
          "uri": "gs://bucket_name/path_to_bak_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à importContext.importUser.

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

REST v1beta4

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

    Per assistenza sul caricamento dei file nei bucket, consulta Caricare oggetti.

  3. Fornisci all'istanza il ruolo IAM storage.objectAdmin per il tuo bucket. Per ulteriori informazioni sull'impostazione delle autorizzazioni IAM, consulta Utilizzare le autorizzazioni IAM.
  4. Importa i dati dal file:

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

    • project-id: l'ID progetto
    • instance-id: l'ID istanza
    • bucket_name: il nome del bucket Cloud Storage
    • path_to_bak_file: il percorso del file BAK
    • 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": "BAK",
          "uri": "gs://bucket_name/path_to_bak_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à importContext.importUser.

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

Se ricevi un messaggio di errore come ERROR_RDBMS, assicurati che il file BAK esista nel bucket e che tu disponga delle autorizzazioni corrette per il bucket. Per assistenza sulla configurazione del controllo dell'accesso dell'accesso in Cloud Storage, consulta Creare e gestire gli elenchi di controllo dell'accesso.

Importare i backup differenziali del database

Prima di importare un backup differenziale del database, devi eseguire un'importazione di un backup completo e il database deve essere nello stato RESTORING dopo l'importazione del backup completo.

Cloud SQL non supporta l'importazione di backup differenziali del database nelle istanze in cui è abilitato il recupero point-in-time. Questo perché l'importazione di un backup del database con --no-recovery è un prerequisito per l'importazione dei backup differenziali del database. Inoltre, non puoi attivare il recupero point-in-time in un'istanza se il database è nello stato RESTORING. In caso di errore di importazione, esegui una delle seguenti operazioni per attivare il recupero point-in-time:

  • Porta online il database in stato RESTORING utilizzando il flag --recovery-only .

  • Rimuovi il database.

Per importare i dati in un'istanza Cloud SQL utilizzando un backup differenziale del database, svolgi i seguenti passaggi:

gcloud

  1. Crea un bucket Cloud Storage per l'importazione.

    gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME

    Questo passaggio non è obbligatorio, ma ti consigliamo vivamente di eseguirlo per non consentire l'accesso ad altri dati.

  2. Assicurati di aver configurato i ruoli e le autorizzazioni richiesti.
  3. Carica i dati dal file BAK nel bucket.
  4. Descrivi l'istanza in cui stai eseguendo l'importazione:
    gcloud sql instances describe INSTANCE_NAME
  5. Copia il campo serviceAccountEmailAddress.
  6. Utilizza gcloud storage buckets add-iam-policy-binding per concedere il ruolo IAM storage.objectViewer all'account di servizio per il bucket. Per ulteriori informazioni sull'impostazione delle autorizzazioni IAM, consulta Utilizzare le autorizzazioni IAM.
  7. Importa un backup completo con --no-recovery.

    gcloud sql import bak INSTANCE_NAME gs://BUCKET_NAME/DIFFERENTIAL_BASE_FILENAME \
    --database=DATABASE_NAME --bak-type=FULL --no-recovery
  8. Importa un backup differenziale del database.

    gcloud sql import bak INSTANCE_NAME gs://BUCKET_NAME/DIFFERENTIAL_BACKUP_FILENAME \
    --database=DATABASE_NAME --bak-type=DIFF --no-recovery
  9. Utilizza il flag --recovery-only per mettere online il database importato. Questo passaggio è facoltativo e devi eseguirlo solo se il database è nello stato RESTORING.

    gcloud sql import bak INSTANCE_NAME \
    --database=DATABASE_NAME --recovery-only
  10. Se non devi conservare le autorizzazioni IAM impostate in precedenza, rimuovile utilizzando gcloud storage buckets remove-iam-policy-binding.

REST v1

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

    Per assistenza sul caricamento dei file nei bucket, consulta Caricare oggetti.

  3. Fornisci all'istanza il ruolo IAM storage.objectAdmin per il tuo bucket. Per ulteriori informazioni sull'impostazione delle autorizzazioni IAM, consulta Utilizzare le autorizzazioni IAM.
  4. Importa un backup completo con noRecovery.

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

    • PROJECT_ID: l'ID progetto.
    • INSTANCE_ID: l'ID istanza.
    • BUCKET_NAME: il nome del bucket Cloud Storage.
    • PATH_TO_BAK_FILE: il percorso del file BAK.
    • 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": "BAK",
          "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE",
          "database": "DATABASE_NAME"
          "bakImportOptions": {
            "noRecovery": true,
            "bakType": "FULL",
          }
    
        }
    }
    
    

    Per inviare la richiesta, scegli una delle seguenti opzioni:

    curl

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import"

    PowerShell

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    $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://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import" | Select-Object -Expand Content

    Dovresti ricevere una risposta JSON simile alla seguente:

  5. Importa un backup differenziale del database.

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

    • project-id: l'ID progetto
    • instance-id: l'ID istanza
    • bucket_name: il nome del bucket Cloud Storage
    • path_to_bak_file: il percorso del file BAK
    • 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": "BAK",
          "uri": "gs://bucket_name/path_to_bak_file",
          "database": "database_name"
          "bakImportOptions": {
            "bakType": "DIFF",
            "noRecovery": true,
          }
    
        }
    }
    
    

    Per inviare la richiesta, scegli una delle seguenti opzioni:

    curl

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/import"

    PowerShell

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    $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://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/import" | Select-Object -Expand Content

    Dovresti ricevere una risposta JSON simile alla seguente:

  6. Utilizza recoveryOnly per mettere online il database importato. Questo passaggio è facoltativo e devi eseguirlo solo se il database è nello stato RESTORING.

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

    • PROJECT_ID: l'ID progetto
    • INSTANCE_ID: l'ID istanza
    • BUCKET_NAME: il nome del bucket Cloud Storage
    • PATH_TO_BAK_FILE: il percorso del file BAK
    • 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": "BAK",
          "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE",
          "database": "DATABASE_NAME"
          "bakImportOptions": {
            "recoveryOnly": true,
          }
    
        }
    }
    
    

    Per inviare la richiesta, scegli una delle seguenti opzioni:

    curl

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import"

    PowerShell

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    $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://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import" | Select-Object -Expand Content

    Dovresti ricevere una risposta JSON simile alla seguente:

  7. Se non devi conservare le autorizzazioni IAM impostate in precedenza, rimuovile.

REST v1beta4

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

    Per assistenza sul caricamento dei file nei bucket, consulta Caricare oggetti.

  3. Fornisci all'istanza il ruolo IAM storage.objectAdmin per il tuo bucket. Per ulteriori informazioni sull'impostazione delle autorizzazioni IAM, consulta Utilizzare le autorizzazioni IAM.
  4. Importa un backup completo connoRecovery.

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

    • PROJECT-ID: l'ID progetto.
    • INSTANCE_ID: l'ID istanza.
    • BUCKET_NAME: il nome del bucket Cloud Storage.
    • PATH_TO_BAK_FILE: il percorso del file BAK.
    • 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": "BAK",
          "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE",
          "database": "DATABASE_NAME"
          "bakImportOptions": {
            "noRecovery": true,
            "bakType": "FULL",
          }
        }
    }
    
    

    Per inviare la richiesta, scegli una delle seguenti opzioni:

    curl

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/INSTANCE_ID/import"

    PowerShell

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    $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://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/INSTANCE_ID/import" | Select-Object -Expand Content

    Dovresti ricevere una risposta JSON simile alla seguente:

  5. Importa un backup differenziale del database.

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

    • project-id: l'ID progetto
    • instance-id: l'ID istanza
    • bucket_name: il nome del bucket Cloud Storage
    • path_to_bak_file: il percorso del file BAK
    • 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": "BAK",
          "uri": "gs://bucket_name/path_to_bak_file",
          "database": "database_name"
          "bakImportOptions": {
            "bakType": "DIFF",
            "noRecovery": true,
          }
        }
    }
    
    

    Per inviare la richiesta, scegli una delle seguenti opzioni:

    curl

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/import"

    PowerShell

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    $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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/import" | Select-Object -Expand Content

    Dovresti ricevere una risposta JSON simile alla seguente:

  6. Utilizza recoveryOnly per mettere online il database importato. Questo passaggio è facoltativo e devi eseguirlo solo se il database è nello stato RESTORING.

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

    • PROJECT_ID: l'ID progetto
    • INSTANCE_ID: l'ID istanza
    • BUCKET_NAME: il nome del bucket Cloud Storage
    • PATH_TO_BAK_FILE: il percorso del file BAK
    • 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": "BAK",
          "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE",
          "database": "DATABASE_NAME"
          "bakImportOptions": {
            "recoveryOnly": true,
          }
        }
    }
    
    

    Per inviare la richiesta, scegli una delle seguenti opzioni:

    curl

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/import"

    PowerShell

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    $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://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/import" | Select-Object -Expand Content

    Dovresti ricevere una risposta JSON simile alla seguente:

  7. Se non devi conservare le autorizzazioni IAM impostate in precedenza, rimuovile.

Se ricevi un errore come ERROR_RDBMS, assicurati che il file BAK esista nel bucket e che tu disponga delle autorizzazioni corrette per il bucket. Per assistenza sulla configurazione del controllo dell'accesso dell'accesso in Cloud Storage, consulta Creare e gestire gli elenchi di controllo dell'accesso.

Importare i backup dei log delle transazioni

Un log delle transazioni è un record delle transazioni del database e delle modifiche apportate da ogni transazione. Puoi utilizzarlo per ristabilire la coerenza del database in caso di guasto del sistema.

Per importare i dati in un'istanza Cloud SQL utilizzando un backup del log delle transazioni, svolgi i seguenti passaggi:

gcloud

  1. (Facoltativo) Crea un bucket Cloud Storage per l'importazione.

    gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME
  2. Carica i file di backup nel bucket.
  3. Descrivi l'istanza in cui stai eseguendo l'importazione:
    gcloud sql instances describe INSTANCE_NAME
  4. Copia il campo serviceAccountEmailAddress.
  5. Utilizza gcloud storage buckets add-iam-policy-binding per concedere il ruolo IAM storage.objectViewer all'account di servizio per il bucket. Per ulteriori informazioni sull'impostazione delle autorizzazioni IAM, consulta Utilizzare le autorizzazioni IAM.
  6. Importa un backup completo utilizzando il parametro --no-recovery. Assicurati che il database sia nello stato RESTORING dopo l'importazione del backup completo.

    gcloud sql import bak INSTANCE_NAME gs://BUCKET_NAME/BACKUP_FILENAME \
    --database=DATABASE_NAME --bak-type=FULL --no-recovery
  7. (Facoltativo) Importa un backup differenziale.
  8. Importa un backup del log delle transazioni.

    gcloud sql import bak INSTANCE_NAME gs://BUCKET_NAME/BACKUP_FILENAME \
    --database=DATABASE_NAME --bak-type=TLOG
    --stop-at=STOP_AT_TIMESTAMP --stop-at-mark=STOP_AT_MARK_NAME
    --no-recovery
    Sostituisci quanto segue:
    • INSTANCE_NAME: il nome dell'istanza.
    • BUCKET_NAME: il nome del bucket Cloud Storage.
    • BACKUP_FILENAME: il nome del file di backup.
    • DATABASE_NAME: il nome di un database all'interno dell'istanza Cloud SQL.
    • STOP_AT_TIMESTAMP: il timestamp in cui deve interrompersi l'importazione del log delle transazioni. Si tratta di un campo facoltativo e il valore deve obbligatoriamente essere nel formato RFC 3339.
    • STOP_AT_MARK_NAME: la transazione contrassegnata in cui deve interrompersi l'importazione del log delle transazioni. Si tratta di un campo facoltativo che può assumere qualsiasi stringa come valore. Se il valore è nel formato lsn:log-sequence-number, l'importazione del log delle transazioni si interrompe al numero di sequenza del log specificato.
    Ripeti questo passaggio finché non sono stati importati tutti i backup dei log delle transazioni.
  9. (Facoltativo) Utilizza il flag --recovery-only per mettere online il database importato. Esegui questo passaggio solo se il database è nello stato RESTORING.

    gcloud sql import bak INSTANCE_NAME \
    --database=DATABASE_NAME --recovery-only
  10. Se non devi conservare le autorizzazioni IAM impostate in precedenza, rimuovile utilizzando gcloud storage buckets remove-iam-policy-binding.

REST v1

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

    Per assistenza sul caricamento dei file nei bucket, consulta Caricare oggetti.

  3. Fornisci all'istanza il ruolo IAM storage.objectAdmin per il tuo bucket. Per ulteriori informazioni sull'impostazione delle autorizzazioni IAM, consulta Utilizzare le autorizzazioni IAM.
  4. Per l'elenco completo dei parametri per la richiesta, consulta la pagina instances:import.
  5. Importa un backup completo con noRecovery. Assicurati che il database sia nello stato RESTORING dopo l'importazione del backup completo.

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

    • PROJECT_ID: l'ID progetto.
    • INSTANCE_ID: l'ID istanza.
    • BUCKET_NAME: il nome del bucket Cloud Storage.
    • PATH_TO_BAK_FILE: il percorso del file BAK.
    • 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": "BAK",
          "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE",
          "database": "DATABASE_NAME"
          "bakImportOptions": {
            "noRecovery": true,
            "bakType": "FULL",
          }
    
        }
    }
    
    

    Per inviare la richiesta, scegli una delle seguenti opzioni:

    curl

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import"

    PowerShell

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    $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://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import" | Select-Object -Expand Content

    Dovresti ricevere una risposta JSON simile alla seguente:

  6. (Facoltativo) Importa un backup differenziale.
  7. Importa un backup del log delle transazioni.

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

    • PROJECT_ID: l'ID progetto.
    • INSTANCE_ID: l'ID istanza.
    • BUCKET_NAME: il nome del bucket Cloud Storage.
    • PATH_TO_TLOG_FILE: il percorso del file di log delle transazioni.
    • DATABASE_NAME: il nome di un database all'interno dell'istanza Cloud SQL.
    • STOP_AT_TIMESTAMP: il timestamp in cui deve interrompersi l'importazione del log delle transazioni. Si tratta di un campo facoltativo e il valore deve obbligatoriamente essere nel formato RFC 3339.
    • STOP_AT_MARK_NAME: la transazione contrassegnata in cui deve interrompersi l'importazione del log delle transazioni. Si tratta di un campo facoltativo che può assumere qualsiasi stringa come valore. Se il valore è nel formato lsn:log-sequence-number, l'importazione del log delle transazioni si interrompe al numero di sequenza del log specificato.

    Metodo HTTP e URL:

    POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import

    Corpo JSON della richiesta:

    {
     "importContext":
       {
          "fileType": "BAK",
          "uri": "gs://BUCKET_NAME/PATH_TO_TLOG_FILE",
          "database": "DATABASE_NAME"
          "bakImportOptions": {
            "bakType": "TLOG",
            "stopAt": STOP_AT_TIMESTAMP,
            "stopAtMark": STOP_AT_MARK_NAME,
            "noRecovery": true,
          }
    
        }
    }
    
    

    Per inviare la richiesta, scegli una delle seguenti opzioni:

    curl

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import"

    PowerShell

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    $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://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import" | Select-Object -Expand Content

    Dovresti ricevere una risposta JSON simile alla seguente:

    Ripeti questo passaggio finché non sono stati importati tutti i backup dei log delle transazioni.
  8. (Facoltativo) Utilizza recoveryOnly per mettere online il database importato. Esegui questo passaggio solo se il database è nello stato RESTORING.

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

    • PROJECT_ID: l'ID progetto
    • INSTANCE_ID: l'ID istanza
    • BUCKET_NAME: il nome del bucket Cloud Storage
    • PATH_TO_BAK_FILE: il percorso del file BAK
    • 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": "BAK",
          "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE",
          "database": "DATABASE_NAME"
          "bakImportOptions": {
            "recoveryOnly": true,
          }
    
        }
    }
    
    

    Per inviare la richiesta, scegli una delle seguenti opzioni:

    curl

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import"

    PowerShell

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    $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://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import" | Select-Object -Expand Content

    Dovresti ricevere una risposta JSON simile alla seguente:

  9. Se non devi conservare le autorizzazioni IAM impostate in precedenza, rimuovile.

REST v1beta4

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

    Per assistenza sul caricamento dei file nei bucket, consulta Caricare oggetti.

  3. Fornisci all'istanza il ruolo IAM storage.objectAdmin per il tuo bucket. Per ulteriori informazioni sull'impostazione delle autorizzazioni IAM, consulta Utilizzare le autorizzazioni IAM.
  4. Importa un backup completo con noRecovery. Assicurati che il database sia nello stato RESTORING dopo l'importazione del backup completo.

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

    • PROJECT-ID: l'ID progetto.
    • INSTANCE_ID: l'ID istanza.
    • BUCKET_NAME: il nome del bucket Cloud Storage.
    • PATH_TO_BAK_FILE: il percorso del file BAK.
    • 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": "BAK",
          "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE",
          "database": "DATABASE_NAME"
          "bakImportOptions": {
            "noRecovery": true,
            "bakType": "FULL",
          }
        }
    }
    
    

    Per inviare la richiesta, scegli una delle seguenti opzioni:

    curl

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/INSTANCE_ID/import"

    PowerShell

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    $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://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/INSTANCE_ID/import" | Select-Object -Expand Content

    Dovresti ricevere una risposta JSON simile alla seguente:

  5. (Facoltativo) Importa un backup differenziale.
  6. Importa un backup del log delle transazioni. Qui, stopAt e stopAtMark sono campi facoltativi.

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

    • PROJECT_ID: l'ID progetto.
    • INSTANCE_ID: l'ID istanza.
    • BUCKET_NAME: il nome del bucket Cloud Storage.
    • PATH_TO_BAK_FILE: il percorso del file BAK.
    • DATABASE_NAME: il nome di un database all'interno dell'istanza Cloud SQL.
    • STOP_AT_TIMESTAMP: il timestamp in cui deve interrompersi l'importazione del log delle transazioni. Si tratta di un campo facoltativo e il valore deve obbligatoriamente essere nel formato RFC 3339.
    • STOP_AT_MARK_NAME: la transazione contrassegnata in cui deve interrompersi l'importazione del log delle transazioni. Si tratta di un campo facoltativo che può assumere qualsiasi stringa come valore. Se il valore è nel formato lsn:log-sequence-number, l'importazione del log delle transazioni si interrompe al numero di sequenza del log specificato.

    Metodo HTTP e URL:

    POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import

    Corpo JSON della richiesta:

    {
     "importContext":
       {
          "fileType": "BAK",
          "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE",
          "database": "DATABASE_NAME"
          "bakImportOptions": {
            "bakType": "TLOG",
            "stopAt": STOP_AT_TIMESTAMP,
            "stopAtMark":STOP_AT_MARK_NAME,
            "noRecovery": true,
          }
    
        }
    }
    
    

    Per inviare la richiesta, scegli una delle seguenti opzioni:

    curl

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import"

    PowerShell

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    $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://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/import" | Select-Object -Expand Content

    Dovresti ricevere una risposta JSON simile alla seguente:

    Ripeti questo passaggio finché non sono stati importati tutti i backup dei log delle transazioni.
  7. (Facoltativo) Utilizza recoveryOnly per mettere online il database importato. Esegui questo passaggio solo se il database è nello stato RESTORING.

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

    • PROJECT_ID: l'ID progetto
    • INSTANCE_ID: l'ID istanza
    • BUCKET_NAME: il nome del bucket Cloud Storage
    • PATH_TO_BAK_FILE: il percorso del file BAK
    • 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": "BAK",
          "uri": "gs://BUCKET_NAME/PATH_TO_BAK_FILE",
          "database": "DATABASE_NAME"
          "bakImportOptions": {
            "recoveryOnly": true,
          }
        }
    }
    
    

    Per inviare la richiesta, scegli una delle seguenti opzioni:

    curl

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/import"

    PowerShell

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    $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://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/import" | Select-Object -Expand Content

    Dovresti ricevere una risposta JSON simile alla seguente:

  8. Se non devi conservare le autorizzazioni IAM impostate in precedenza, rimuovile.

Utilizza l'importazione a strisce

I vantaggi dell'importazione a strisce sono i seguenti:

  • Riduzione del tempo necessario per il completamento delle operazioni
  • È possibile importare database di dimensioni superiori a 5 TB

Un potenziale svantaggio dell'utilizzo dell'importazione a strisce è che tutti i file dell'insieme a strisce (anziché un singolo file) devono essere caricati nella stessa cartella del bucket Cloud Storage prima di eseguire l'importazione.

Pianificare le operazioni

Nella maggior parte dei casi, l'importazione a strisce consente prestazioni migliori senza svantaggi. Tuttavia, se non riesci a eseguire il backup in un set a strisce da una determinata istanza o se il tuo database è inferiore a 5 TB e se un rendimento più elevato non è fondamentale, ti consigliamo di utilizzare un'importazione non a strisce.

Come utilizzare l'importazione a strisce

gcloud

  1. Crea un bucket Cloud Storage per l'importazione.

    gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME

    Questo passaggio non è obbligatorio, ma vivamente consigliato per non consentire l'accesso ad altri dati.

  2. Assicurati di aver configurato i ruoli e le autorizzazioni IAM richiesti.
  3. Crea una nuova cartella nel bucket.
  4. Per importare il database, carica i file del set a strisce (del database) nella nuova cartella. Assicurati che tutti i file siano stati caricati nella cartella e che la cartella non contenga file aggiuntivi.
  5. Descrivi l'istanza da cui stai eseguendo l'esportazione:
    gcloud sql instances describe INSTANCE_NAME
  6. Copia il campo serviceAccountEmailAddress.
  7. Utilizza gcloud storage buckets add-iam-policy-binding per concedere il ruolo IAM storage.objectViewer all'account di servizio per il bucket. Per ulteriori informazioni sull'impostazione delle autorizzazioni IAM, consulta Utilizzare le autorizzazioni IAM.
  8. Importa i dati dalla cartella. La differenza rispetto a un'importazione non a strisce è la seguente: l'URI rimanda al nome della cartella a cui è stato caricato l'insieme di strisce anziché a un singolo file e specifichi il parametro --striped:
    gcloud beta sql import bak INSTANCE_NAME gs://BUCKET_NAME/FOLDER_NAME \
    --database=DATABASE_NAME --striped
  9. Se non devi conservare le autorizzazioni IAM impostate in precedenza, rimuovile utilizzando gcloud storage buckets remove-iam-policy-binding.

REST v1

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

    Per assistenza sul caricamento dei file nei bucket, consulta Caricare oggetti.

  3. Fornisci all'istanza il ruolo IAM storage.objectAdmin per il tuo bucket. Per ulteriori informazioni sull'impostazione delle autorizzazioni IAM, consulta Utilizzare le autorizzazioni IAM.
  4. Importa i dati dal file:

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

    • project-id: l'ID progetto
    • instance-id: l'ID istanza
    • bucket_name: il nome del bucket Cloud Storage
    • path_to_folder: il percorso della cartella (nel bucket Cloud Storage) in cui si trova l'insieme di strisce
    • database_name: il nome di un database da creare nell'istanza Cloud SQL
    • true | false: impostato su true per utilizzare l'importazione a strisce

    Metodo HTTP e URL:

    POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/import

    Corpo JSON della richiesta:

    {
     "importContext":
       {
          "fileType": "BAK",
          "uri": "gs://bucket_name/path_to_folder",
          "database": "database_name",
          "bakImportOptions": {
            "striped": true | false
          }
        }
    }
    

    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à importContext.importUser.

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

REST v1beta4

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

    Per assistenza sul caricamento dei file nei bucket, consulta Caricare oggetti.

  3. Fornisci all'istanza il ruolo IAM storage.objectAdmin per il tuo bucket. Per ulteriori informazioni sull'impostazione delle autorizzazioni IAM, consulta Utilizzare le autorizzazioni IAM.
  4. Importa i dati dal file:

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

    • project-id: l'ID progetto
    • instance-id: l'ID istanza
    • bucket_name: il nome del bucket Cloud Storage
    • path_to_folder: il percorso della cartella (nel bucket Cloud Storage) in cui si trova l'insieme di strisce
    • database_name: il nome di un database da creare nell'istanza Cloud SQL
    • true | false: impostato su true per utilizzare l'importazione a strisce

    Metodo HTTP e URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/import

    Corpo JSON della richiesta:

    {
     "importContext":
       {
          "fileType": "BAK",
          "uri": "gs://bucket_name/path_to_folder",
          "database": "database_name",
          "bakImportOptions": {
            "striped": true | false
          }
        }
    }
    

    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à importContext.importUser.

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

Se viene visualizzato un messaggio di errore come ERROR_RDBMS, assicurati che la tabella esista. Se la tabella esiste, verifica di disporre delle autorizzazioni corrette sul bucket. Per assistenza sulla configurazione del controllo dell'accesso dell'accesso in Cloud Storage, consulta Creare e gestire gli elenchi di controllo dell'accesso.

Passaggi successivi