Ripristina un'istanza Cloud SQL da un vault di backup

Questo documento spiega come ripristinare un'istanza Cloud SQL da un vault di backup utilizzando la Google Cloud console o Google Cloud CLI. Descrive come eseguire il ripristino in un'istanza nuova o esistente, sovrascrivere un'istanza di origine o eseguire il recupero point-in-time (PITR).

Per ulteriori informazioni sulle funzionalità concettuali del servizio di Backup e DR, vedi la panoramica del servizio di Backup e DR. Se vuoi eseguire prima il backup dei database, vedi Eseguire il backup delle istanze Cloud SQL in un vault di backup.

Disaster recovery e resilienza

Il servizio di Backup e DR offre opzioni di ripristino di emergenza per le istanze Cloud SQL. I backup archiviati in un vault di backup sono indipendenti dal ciclo di vita e dal progetto dell'istanza di origine.

  • Eliminazione del progetto: puoi ripristinare i backup anche se il progetto del carico di lavoro originale contenente l'istanza Cloud SQL di origine è stato eliminato. Questo perché le autorizzazioni di decrittografia necessarie per i backup criptati con CMEK vengono concesse al service agent di Backup e RE all'interno del progetto del vault di backup, non del progetto del carico di lavoro. In questo modo, i backup rimangono accessibili e ripristinabili finché il vault di backup e la chiave Cloud Key Management Service sono intatti e il service agent dispone delle autorizzazioni.

  • Target di ripristino flessibili: puoi eseguire il ripristino in una nuova istanza nello stesso progetto o in un progetto diverso, offrendo flessibilità negli scenari di ripristino.

Prima di iniziare

Prima di ripristinare un'istanza Cloud SQL da un vault di backup, assicurati di disporre dei ruoli richiesti.

Per ottenere le autorizzazioni necessarie per ripristinare un'istanza Cloud SQL da un vault di backup, chiedi all'amministratore di concederti i seguenti ruoli IAM:

  • Per creare il target di ripristino: Amministratore Cloud SQL (roles/cloudsql.admin) nel progetto in cui si trova l'istanza di destinazione
  • Per leggere il backup dal vault: Backup e DR Restore User (roles/backupdr.restoreUser) nel progetto in cui esistono i backup di origine

Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questi ruoli predefiniti contengono le autorizzazioni necessarie per ripristinare un'istanza Cloud SQL da un vault di backup. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per ripristinare un'istanza Cloud SQL da un vault di backup sono necessarie le seguenti autorizzazioni:

  • Per creare il target di ripristino: cloudsql.instances.restore
  • Per leggere il backup dal vault: backupdr.bvbackups.useReadOnlyForCloudSqlInstance

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Ripristinare un'istanza Cloud SQL dall'ultimo backup

Utilizza le seguenti istruzioni per ripristinare un'istanza Cloud SQL:

Console

  1. Nella Google Cloud console, vai alla pagina Backup archiviati nel vault.

    Vai ai backup archiviati nel vault

    La pagina Backup archiviati nel vault elenca solo le risorse dati a cui sono applicati piani di backup e i cui backup sono archiviati in un vault di backup all'interno di questo progetto.

  2. Seleziona il backup che vuoi ripristinare. Nella pagina dei dettagli del backup o nel menu seleziona Ripristina.

    La pagina Ripristina mostra dove selezionare le seguenti opzioni di ripristino:

    • Il Tipo di risorsa è precompilato con Cloud SQL.

    • In Nome risorsa, seleziona l'istanza Cloud SQL da ripristinare.

    • Quando fai clic su Backup, si apre un riquadro che mostra tutti i backup disponibili. Seleziona il backup specifico da ripristinare.

    • Per Scegli la destinazione di ripristino, seleziona il progetto in cui vuoi ripristinare l'istanza Cloud SQL.

  3. Fai clic su Continua.

  4. Quando ti viene chiesto di Scegliere la destinazione di ripristino, seleziona una delle seguenti opzioni:

    • Ripristina in una nuova istanza: crea una nuova istanza basata sulla configurazione memorizzata nel backup. Puoi personalizzare l'istanza al termine del ripristino. Fornisci un nuovo ID istanza utilizzando lettere minuscole, numeri e trattini. Deve iniziare con una lettera.
    • Sovrascrivi un'istanza esistente: seleziona un'istanza esistente da sovrascrivere dall'elenco delle istanze disponibili.

    • Sovrascrivi l'istanza di origine: sovrascrive l'istanza attuale. Tutti i dati attuali nell'istanza selezionata verranno sovrascritti, inclusi i log di recupero point-in-time precedenti. I dati sovrascritti non possono essere recuperati in un secondo momento. Questa opzione è sconsigliata per l'uso in produzione.

gcloud

  1. Trova l'origine dati che contiene il backup che vuoi ripristinare. Puoi trovare l'origine dati da un progetto di istanza Cloud SQL o da un progetto di vault di backup:

    • Dal progetto dell'istanza Cloud SQL: utilizza data-source-reference

      gcloud alpha backup-dr data-source-references fetch-for-resource-type sqladmin.googleapis.com/Instance \
      --location=LOCATION \
      --project=CSQL_INSTANCE_PROJECT_ID \
      --filter='dataSourceGcpResourceInfo.cloudSqlInstanceProperties.name="projects/CSQL_INSTANCE_PROJECT_ID/instances/CSQL_INSTANCE_ID"' \
      --format="table(RESOURCE_NAME,DATA_SOURCE)"
      

      Sostituisci quanto segue:

      • LOCATION: la posizione del vault di backup.

      • CSQL_INSTANCE_ID: il nome del database dell'istanza Cloud SQL.

      • CSQL_INSTANCE_PROJECT_ID: il progetto contenente l'istanza Cloud SQL.

    • Da un progetto di vault di backup: utilizza data-source

      gcloud backup-dr data-sources list \
      --location=LOCATION \
      --project=BACKUP_VAULT_PROJECT_ID \
      --filter='dataSourceGcpResource.cloudSqlInstanceDatasourceProperties.name=projects/CSQL_INSTANCE_PROJECT_ID/instances/CSQL_INSTANCE_ID' \
      --format="table(dataSourceGcpResource.cloudSqlInstanceDatasourceProperties.name:label=RESOURCE_NAME,name:label=DATA_SOURCE)"
      

      Sostituisci quanto segue:

      • LOCATION: la posizione del vault di backup.

      • CSQL_INSTANCE_ID: il nome dell'istanza Cloud SQL.

      • CSQL_INSTANCE_PROJECT_ID: il progetto contenente l'istanza Cloud SQL.

      • BACKUP_VAULT_PROJECT_ID: il progetto contenente il vault di backup.

  2. Elenca e seleziona il backup da ripristinare elencando tutti i backup nell'origine dati utilizzando il comando gcloud backup-dr backups list.

    gcloud backup-dr backups list --data-source=DATA_SOURCE \
    --format="table(consistencyTime,backupType,name:label=BACKUP_NAME)"
    
  3. Ripristina un'istanza Cloud SQL utilizzando il comando gcloud sql backups restore:

    gcloud sql backups restore BACKUP_NAME \
    --restore-instance=RESTORE_INSTANCE \
    --project=RESTORE_PROJECT
    --region=RESTORE_REGION
    

    Sostituisci quanto segue:

    • BACKUP_NAME: il nome del vault di backup da cui vuoi ripristinare i dati.

    • RESTORE_INSTANCE: il nome dell'istanza Cloud SQL di destinazione.

    • RESTORE_PROJECT: il progetto in cui vuoi ripristinare l'istanza Cloud SQL.

    • RESTORE_REGION: la regione in cui vuoi eseguire il ripristino in una nuova istanza Cloud SQL. Questo parametro è facoltativo per i backup a livello di regione. Non utilizzarlo quando esegui il ripristino in un'istanza esistente.

  4. (Facoltativo) Per sostituire altre proprietà, vedi Panoramica dei comandi Google Cloud CLI del servizio di Backup e DR.

Ripristinare un'istanza Cloud SQL in un altro momento

Utilizza le seguenti istruzioni per ripristinare un'istanza Cloud SQL in un momento specifico. Quando esegui il ripristino in un momento specifico, crei un clone di Cloud SQL.

  1. Nella Google Cloud console, vai alla pagina Backup archiviati nel vault.

    Vai ai backup archiviati nel vault

  2. Nella parte superiore della tabella, seleziona Filtra tabella e poi fai clic su Tipo di risorsa. Seleziona Cloud SQL. In questo modo, la visualizzazione viene limitata solo alle istanze Cloud SQL a cui sono applicati piani di backup e i cui backup sono archiviati in un vault di backup all'interno di un progetto.

  3. Fai clic su Ripristina da un momento specifico. Si apre la pagina Crea un clone di Cloud SQL.

  4. Segui le procedure descritte in Eseguire il recupero point-in-time utilizzando il vault di backup.

Passaggi successivi

Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.