Creazione e gestione dei backup on demand e automatici

In questa pagina viene descritto come pianificare e disattivare i backup automatici, creare gestire i backup on demand e visualizzare i backup per i tuoi di Cloud SQL.

Per ulteriori informazioni sul funzionamento dei backup, vedi Panoramica dei backup.

Crea un backup on demand

Per creare un backup on demand:

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. Seleziona Backup dal menu di navigazione SQL.
  4. Fai clic su Crea backup.
  5. Nella pagina Crea backup, aggiungi una descrizione, se necessario, e fai clic su Crea.

gcloud

Crea il backup:

gcloud sql backups create \
--async \
--instance=INSTANCE_NAME

Puoi fornire una descrizione del backup utilizzando --description .

Per creare un backup in una posizione personalizzata:

gcloud sql backups create \
--async \
--instance=INSTANCE_NAME \
--location=BACKUP_LOCATION

REST v1

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

  • project-id: l'ID progetto
  • instance-id: l'ID istanza

Metodo HTTP e URL:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

REST v1beta4

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

  • project-id: l'ID progetto
  • instance-id: l'ID istanza

Metodo HTTP e URL:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Pianifica backup automatici

Per pianificare i backup automatici per un'istanza:

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. Seleziona Backup dal menu di navigazione SQL.
  4. Fai clic su Modifica accanto a Impostazioni.
  5. Scegli un intervallo di tempo per il backup automatico dei tuoi dati.
  6. Fai clic su Salva.

gcloud

  1. Modifica l'istanza per specificare un'ora di inizio del backup:
    gcloud sql instances patch INSTANCE_NAME --backup-start-time=HH:MM
    Il parametro backup-start-time è specificato in un formato di 24 ore nel fuso orario UTC±00 e specifica l'inizio di una Finestra di backup di 4 ore. I backup possono essere avviati in qualsiasi momento durante la finestra di backup.
  2. Conferma le modifiche:
    gcloud sql instances describe INSTANCE_NAME
    Nella sezione backupConfiguration, verifica di vedere enabled: true e l'ora specificata.

Terraform

Per creare un backup di un database, utilizza una risorsa Terraform.

resource "google_sql_database_instance" "default" {
  name             = "sqlserver-instance-backup"
  region           = "us-central1"
  database_version = "SQLSERVER_2019_STANDARD"
  root_password    = "INSERT-PASSWORD-HERE"
  settings {
    tier = "db-custom-2-7680"
    backup_configuration {
      enabled    = true
      start_time = "20:55"
    }
  }
  # set `deletion_protection` to true, will ensure that one cannot accidentally delete this instance by
  # use of Terraform whereas `deletion_protection_enabled` flag protects this instance at the GCP level.
  deletion_protection = false
}

Applica le modifiche

Per applicare la configurazione Terraform in un progetto Google Cloud, completa i passaggi nelle seguenti sezioni.

Prepara Cloud Shell

  1. Avvia Cloud Shell.
  2. Imposta il progetto Google Cloud predefinito in cui vuoi applicare le configurazioni Terraform.

    Devi eseguire questo comando una sola volta per progetto e puoi farlo in qualsiasi directory.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Le variabili di ambiente vengono sostituite se imposti valori espliciti in Terraform di configurazione del deployment.

Prepara la directory

Ogni file di configurazione di Terraform deve avere una propria directory (chiamata anche modulo principale).

  1. In Cloud Shell, crea una directory e un nuovo all'interno di quella directory. Il nome file deve contenere .tf, ad esempio main.tf. In questo tutorial, il file è denominato main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Se stai seguendo un tutorial, puoi copiare il codice campione in ogni sezione o passaggio.

    Copia il codice campione nel nuovo oggetto main.tf.

    Facoltativamente, copia il codice da GitHub. Opzione consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.

  3. Esamina e modifica i parametri di esempio da applicare al tuo ambiente.
  4. Salva le modifiche.
  5. Inizializza Terraform. Devi eseguire questa operazione una sola volta per directory.
    terraform init

    Se vuoi, per utilizzare la versione più recente del provider Google, includi l'opzione -upgrade:

    terraform init -upgrade

Applica le modifiche

  1. Rivedi la configurazione e verifica che le risorse che Terraform creerà o che l'aggiornamento soddisfi le tue aspettative:
    terraform plan

    Apporta le correzioni necessarie alla configurazione.

  2. Applica la configurazione di Terraform eseguendo il seguente comando e inserendo yes al prompt:
    terraform apply

    Attendi finché Terraform non visualizzi il messaggio "Applicazione completata!". per creare un nuovo messaggio email.

  3. Apri il progetto Google Cloud per visualizzare i risultati. Nella console Google Cloud, vai alle risorse nell'interfaccia utente per assicurarti che Terraform le abbia create o aggiornate.

Elimina le modifiche

Per eliminare le modifiche:

  1. Per disabilitare la protezione dall'eliminazione, imposta il file di configurazione Terraform Argomento deletion_protection per false.
    deletion_protection =  "false"
  2. Applica la configurazione Terraform aggiornata eseguendo il seguente comando e inserendo yes al prompt:
    terraform apply
  1. Rimuovi le risorse applicate in precedenza con la configurazione Terraform eseguendo il seguente comando e inserendo yes al prompt:

    terraform destroy

REST v1

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

  • PROJECT_ID: l'ID o il numero di progetto del progetto Google Cloud che contiene l'istanza
  • INSTANCE_NAME: il nome dell'istanza principale o di replica di lettura che stai configurando per l'alta disponibilità
  • START_TIME: l'ora (in ore e minuti)

Metodo HTTP e URL:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME

Corpo JSON della richiesta:

{
  "settings":
  {
    "backupConfiguration":
    {
      "startTime": "START_TIME",
      "enabled": true,
      "binaryLogEnabled": true
    }
  }
}

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

REST v1beta4

Impostare una posizione personalizzata per i backup

Utilizza una posizione di backup personalizzata solo se richiesto dalle normative. Se non è obbligatoria, utilizza la posizione di backup multi-regione predefinita.

Puoi utilizzare una località personalizzata per i backup automatici e on demand. Per un elenco completo dei valori posizione validi, consulta Località delle istanze.

Per aggiornare un'istanza con una località personalizzata:

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. Dal menu di navigazione SQL, seleziona Backup.
  4. Accanto a Impostazioni, fai clic su Modifica.
  5. Nella sezione Backup automatici, espandi Opzioni avanzate.
  6. Fai clic su Più regioni (valore predefinito) o Regione.
  7. Seleziona la stazione di ricarica dal menu a discesa Stazione di ricarica.
  8. Fai clic su Salva.

gcloud

Per informazioni di riferimento, consulta gcloud sql instances patch.

gcloud sql instances patch INSTANCE_NAME \
--backup-location=BACKUP_LOCATION
  

Terraform

Per specificare una località personalizzata per il backup di un'istanza di database, utilizza una risorsa Terraform.

resource "google_sql_database_instance" "default" {
  name             = "sqlserver-instance-with-backup-location"
  region           = "us-central1"
  database_version = "SQLSERVER_2019_STANDARD"
  root_password    = "INSERT-PASSWORD-HERE"
  settings {
    tier = "db-custom-2-7680"
    backup_configuration {
      enabled  = true
      location = "us-central1"
    }
  }
  # set `deletion_protection` to true, will ensure that one cannot accidentally delete this instance by
  # use of Terraform whereas `deletion_protection_enabled` flag protects this instance at the GCP level.
  deletion_protection = false
}

REST v1

Utilizza il parametro settings.backupConfiguration.location dell'istanza per la posizione del backup.

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

  • region: la regione del progetto
  • backup-region: la regione di backup
  • project-id: l'ID progetto
  • instance-id: l'ID istanza

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

{
  "region": "region"
  "settings":
  {
    "backupConfiguration":
    {
      "location": "backup-region",
      "enabled": true,
    }
  }
}

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

REST v1beta4

Utilizza il parametro settings.backupConfiguration.location dell'istanza per la posizione del backup.

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

  • region: la regione del progetto
  • backup-region: la regione di backup
  • project-id: l'ID progetto
  • instance-id: l'ID istanza

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

{
  "region": "region"
  "settings":
  {
    "backupConfiguration":
    {
      "location": "backup-region",
      "enabled": true,
    }
  }
}

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Visualizzare un elenco di backup

Per visualizzare un elenco di backup e i dettagli di un backup, utilizza le seguenti opzioni.

La console Google Cloud non mostra i backup saltati o non riusciti nella cronologia dei backup. Per visualizzare i backup ignorati, utilizza gcloud o l'API.

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. Seleziona Backup dal menu di navigazione SQL per visualizzare i backup recenti. insieme all'ora di creazione e al tipo di backup.

gcloud

  • Elenca i backup dell'istanza:
    gcloud sql backups list \
    --instance INSTANCE_NAME

    Puoi filtrare e controllare i risultati utilizzando i parametri standard dell'elenco. Per un elenco completo, consulta la pagina di riferimento del comando gcloud sql backups list.

  • Visualizza i dettagli di un backup specificando il ID di backup dall'output del comando backups list.
    gcloud sql backups describe BACKUP_ID \
    --instance INSTANCE_NAME
        

REST v1

Puoi anche utilizzare Explorer API nella pagina BackupRuns:list per inviare la richiesta all'API REST.

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

  • project-id: l'ID progetto
  • instance-id: l'ID istanza

Metodo HTTP e URL:

GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/backupRuns

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

REST v1beta4

Puoi utilizzare anche lo Explorer API nella pagina BackupRuns:list per inviare la richiesta API REST.

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

  • project-id: l'ID progetto
  • instance-id: l'ID istanza

Metodo HTTP e URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/backupRuns

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Visualizza un elenco dei backup durante un'interruzione

Quando un'istanza si trova in una regione in cui si è verificata un'interruzione del servizio, puoi visualizzare solo i backup per quell'istanza utilizzando un carattere jolly (-) con l'API backupRuns.list. Il carattere jolly restituisce tutti i backup nel progetto. Consulta Ripristino in un'altra istanza.

Quando si verifica un'interruzione del servizio in una regione in cui sono attivate le chiavi di crittografia gestite dal cliente (CMEK), non puoi ripristinare i backup dell'istanza in un'altra regione. Il motivo è che Cloud SQL utilizza le chiavi Cloud KMS regionali per la crittografia quando CMEK è abilitato nell'istanza. Per ripristinare i backup di un'istanza CMEK, Cloud SQL deve avere accesso alla chiave CMEK. In una regione in un'interruzione del servizio, non è possibile accedere alle chiavi Cloud KMS in quella regione.

gcloud

  1. Elenca i backup per ogni istanza di un progetto:
    gcloud sql backups list --instance -

    Il comando restituisce informazioni simili alle seguenti:

    {
          "kind": "sql#backupRun",
          "status": "SUCCESSFUL",
          "enqueuedTime": "2020-01-21T11:25:33.818Z",
          "id": "backup-id",
          "startTime": "2020-01-21T11:25:33.858Z",
          "endTime": "2020-01-21T11:26:18.663Z",
          "type": "AUTOMATED",
          "windowStartTime": "2020-01-21T10:00:00.479Z",
          "instance": "instance-id",
          "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/backupRuns/backup-id",
          "location": "us"
          "backupKind": "SNAPSHOT"
        }
  2. Trova il backup dell'istanza di cui hai bisogno. Per ripristinare questo backup, consulta Ripristino in un'altra istanza.

REST v1

  1. Elenca tutti i backup in un progetto:

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

    • project-id: l'ID progetto
    • instance-id: l'ID istanza o - per un elenco di tutti i backup nel progetto

    Metodo HTTP e URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/-/backupRuns

    Per inviare la richiesta, espandi una di queste opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

  2. Trova il backup dell'istanza di cui hai bisogno. Per ripristinare questo backup, consulta Ripristino in un'altra istanza.

REST v1beta4

  1. Elenca tutti i backup in un progetto:

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

    • project-id: l'ID progetto
    • instance-id: l'ID istanza o - per un elenco di tutti i backup nel progetto

    Metodo HTTP e URL:

    GET https://sqladmin.googleapis.com/v1beta4/projects/project-id/instances/-/backupRuns

    Per inviare la richiesta, espandi una di queste opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

  2. Trova il backup per l'istanza di cui hai bisogno. Per ripristinare questo backup, consulta Ripristino in un'altra istanza.

Visualizza le posizioni dei backup

Per visualizzare le località dei backup eseguiti per un'istanza, utilizza backupRuns:

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. Seleziona Backup dal menu di navigazione SQL.
  4. Nell'elenco dei backup, la colonna Posizione elenca il tipo di località (multiregionale o regione) e la specifica multiregione o regione per ogni backup.

gcloud

Per informazioni di riferimento, consulta gcloud sql instances describe.

  1. Elenca i backup dell'istanza:
    gcloud sql backups list \
    --instance INSTANCE_NAME

    Puoi filtrare e controllare i risultati utilizzando i parametri standard dell'elenco. Per un elenco completo, vedi gcloud sql backup list pagina di riferimento per i comandi.

  2. Per elencare i dettagli di un backup, utilizza ID dall'output del comando backups list.
    gcloud sql backups describe BACKUP_ID \
    --instance INSTANCE_NAME

REST v1

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

  • project-id: l'ID progetto
  • instance-id: l'ID istanza

Metodo HTTP e URL:

GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/backupRuns

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Negli esempi precedenti:
  • REGION è la regione dell'istanza originale.
  • BACKUP_LOCATION è la posizione in cui vuoi che Cloud SQL immagazzina il backup.

REST v1beta4

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

  • project-id: l'ID progetto
  • instance-id: l'ID istanza

Metodo HTTP e URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/backupRuns

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Negli esempi precedenti:
  • REGION è la regione per l'istanza originale.
  • BACKUP_LOCATION è la posizione in cui vuoi che Cloud SQL immagazzina il backup.

Imposta la conservazione dei backup automatici

Per impostare il numero di backup automatici da conservare:

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. Seleziona Backup dal menu di navigazione SQL.
  4. Fai clic su Modifica.
  5. Nella sezione Backup automatici, espandi Opzioni avanzate.
  6. Inserisci il numero di backup da archiviare contemporaneamente.

    Il numero non può essere inferiore al valore predefinito (sette).

  7. Fai clic su Salva.

gcloud

Modifica l'istanza per impostare il numero di backup automatici da conservare. Il numero non può essere inferiore al valore predefinito (sette).

gcloud sql instances patch INSTANCE_NAME \
--retained-backups-count=NUM_TO_RETAIN

Terraform

Per specificare il numero di backup automatici da conservare per un'istanza di database, utilizza una risorsa Terraform.

resource "google_sql_database_instance" "default" {
  name             = "sqlserver-instance-backup-retention"
  region           = "us-central1"
  database_version = "SQLSERVER_2019_STANDARD"
  root_password    = "INSERT-PASSWORD-HERE"
  settings {
    tier = "db-custom-2-7680"
    backup_configuration {
      enabled = true
      backup_retention_settings {
        retained_backups = 365
        retention_unit   = "COUNT"
      }
    }
  }
  # set `deletion_protection` to true, will ensure that one cannot accidentally delete this instance by
  # use of Terraform whereas `deletion_protection_enabled` flag protects this instance at the GCP level.
  deletion_protection = false
}

REST v1beta4

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

  • unit: (facoltativo) l'unità di conservazione può essere un numero intero o una stringa. I valori attualmente supportati (e predefiniti) sono 1 o "COUNT".
  • num-to-retain: il numero di backup automatici da conservare. Il numero non può essere rispetto a quello predefinito (7).
  • project-id: l'ID progetto
  • instance-id: l'ID istanza

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

{
  "settings":
  {
    "backupConfiguration":
    {
      "backupRetentionSettings":
      {
        "retentionUnit": unit,
        "retainedBackups": "num-to-retain"
      }
    }
  }
}

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Eliminare un backup

Puoi eliminare i backup automatici e on demand.

L'eliminazione di un backup potrebbe non per liberare lo spazio corrispondente alla dimensione del backup. Questo perché i backup vengono incrementale, pertanto l'eliminazione di un backup meno recente potrebbe trasferire parte dei suoi contenuti a un backup più recente per preservare l'integrità del backup più recente.

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. Seleziona Backup dal menu di navigazione SQL.
  4. Fai clic su Altre azioni Icona Altre azioni. per il backup che vuoi eliminare.
  5. Seleziona Elimina.
  6. Nella finestra Elimina backup, digita Delete nel campo e fai clic su Elimina.

gcloud

Elimina un backup di un'istanza Cloud SQL:

gcloud beta sql backups delete BACKUP_ID \
--instance INSTANCE_NAME
      

Per un elenco completo dei parametri, consulta la pagina di riferimento del comando gcloud beta sql backups delete.

REST v1

  1. Elenca i backup per ottenere l'ID del backup che vuoi eliminare:

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

    • project-id: l'ID progetto
    • instance-id: l'ID istanza

    Metodo HTTP e URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/backupRuns

    Per inviare la richiesta, espandi una di queste opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

  2. Elimina il backup:

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

    • project-id: l'ID progetto
    • instance-id: l'ID istanza
    • backup-id: l'ID backup

    Metodo HTTP e URL:

    DELETE https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/backupRuns/backup-id

    Per inviare la richiesta, espandi una di queste opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

REST v1beta4

  1. Elenca i backup per ottenere l'ID del backup che vuoi eliminare:

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

    • project-id: l'ID progetto
    • instance-id: l'ID istanza

    Metodo HTTP e URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/backupRuns

    Per inviare la richiesta, espandi una di queste opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

  2. Elimina il backup:

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

    • project-id: l'ID progetto
    • instance-id: l'ID istanza
    • backup-id: l'ID backup

    Metodo HTTP e URL:

    DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/backupRuns/backup-id

    Per inviare la richiesta, espandi una di queste opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

Disattivare i backup automatici

Per disattivare i backup automatici per un'istanza:

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. Seleziona Backup dal menu di navigazione SQL.
  4. Fai clic su Gestisci backup automatici.
  5. Deseleziona Backup automatici.
  6. Fai clic su Salva.

gcloud

Modifica l'istanza per disattivare i backup:

gcloud sql instances patch INSTANCE_NAME \
--no-backup

REST v1

REST v1beta4

Passaggi successivi