Gestisci backup

Questa pagina descrive le operazioni di backup di Bigtable e spiega come eseguire il backup di una tabella e il ripristino da una tabella in una nuova. Prima di leggere questa pagina, dovresti acquisire familiarità con la sezione Backup.

Puoi lavorare con i backup di Bigtable utilizzando quanto segue:

  • La console Google Cloud.
  • Google Cloud CLI.
  • Le librerie client di Cloud Bigtable.

Puoi anche accedere direttamente all'API, ma ti consigliamo vivamente di eseguire questa operazione solo se devi utilizzare un linguaggio non supportato dalle librerie client di Cloud Bigtable.

Prima di iniziare

Assicurati che tu o l'account utente che stai utilizzando disponga delle autorizzazioni richieste per l'azione da eseguire.

Se prevedi di utilizzare gcloud CLI, installa gcloud CLI per Bigtable.

Usa backup automatico

Puoi utilizzare gcloud CLI per abilitare il backup automatico quando crei o aggiorni una tabella. I passaggi per eliminare, aggiornare, copiare e ripristinare un backup sono gli stessi indipendentemente dal fatto che il backup venga creato manualmente o a seguito di un backup automatico.

Durante l'anteprima, tieni presente quanto segue se prevedi di abilitare il backup automatico:

  • Se viene aggiunto un cluster a un'istanza contenente una tabella in cui è abilitato il backup automatico, i backup giornalieri non vengono creati sul cluster aggiunto. Per creare backup giornalieri su tutti i cluster, incluso quello appena aggiunto, disabilita il backup automatico per la tabella, quindi riattiva il backup automatico.
  • Se una tabella con il backup automatico abilitato viene eliminata e successivamente annullata, devi riabilitare il backup automatico nella tabella recuperata.
  • Il ripristino di un backup automatico di una tabella non abilita automaticamente il backup automatico nella tabella ripristinata. Devi abilitare manualmente il backup automatico.

Abilita backup automatico

Per abilitare il backup automatico per una tabella, esegui il comando gcloud bigtable instances tables update. Per ulteriori informazioni sull'abilitazione del backup automatico durante la creazione di una tabella, consulta Creare una tabella.

Dopo aver abilitato il criterio di backup automatico per una tabella, l'applicazione della configurazione aggiornata può richiedere fino a un'ora.

gcloud bigtable instances tables update TABLE_ID \
--instance=INSTANCE_ID \
--enable-automated-backup

Sostituisci quanto segue:

  • TABLE_ID: ID della tabella di cui eseguire il backup.
  • INSTANCE_ID: l'identificatore permanente dell'istanza.
  1. Se non conosci l'ID istanza, usa il comando bigtable instances list per visualizzare un elenco delle istanze del tuo progetto:

      gcloud bigtable instances list
    
  2. Visualizza l'elenco delle tabelle per confermare l'ID della tabella di cui vuoi eseguire il backup.

        gcloud bigtable instances tables list --instances=INSTANCE_ID
    

Ai backup creati come parte di un backup automatico vengono assegnati ID che iniziano con auto. Ad esempio, una tabella con ID my-table avrà un ID backup automatico come auto.my-table.c7x3.20230220-1455, dove my-table è l'ID tabella troncato, c7x3 è l'ID hash univoco e 20230220-1455 è la data e l'ora in formato UTC.

Disabilita backup automatico

Per disabilitare il backup automatico per una tabella esistente, esegui il comando gcloud bigtable instances tables update.

Dopo che il criterio di backup automatico è disabilitato per una tabella, l'applicazione della configurazione aggiornata può richiedere fino a un'ora. Potrebbero essere necessarie fino a 24 ore prima che il primo backup sia disponibile.

gcloud bigtable instances tables update TABLE_ID \
--instance=INSTANCE_ID \
--disable-automated-backup

Sostituisci quanto segue:

  • TABLE_ID: ID della tabella.
  • INSTANCE_ID: l'identificatore permanente dell'istanza.

Visualizza criterio di backup automatico

Per visualizzare il criterio di backup automatico per una tabella, esegui il comando gcloud bigtable instances tables describe.

gcloud bigtable instances tables describe TABLE_ID \
--instance=INSTANCE_ID

Sostituisci quanto segue:

  • TABLE_ID: ID della tabella.
  • INSTANCE_ID: l'identificatore permanente dell'istanza.

L'output è simile al seguente:

automatedBackupPolicy:
  retentionPeriod: 3d
  frequency: 24h
columnFamilies:
  my-family: {}
createTime: '2023-02-07T20:10:55.613546Z'
granularity: MILLIS
name: projects/my-project/instances/my-instance/tables/my-table
updateTime: '2023-02-07T20:10:55.613546Z'

Tieni presente quanto segue:

  • Il campo automatedBackupPolicy non è presente quando il backup automatico non è abilitato per una tabella.
  • L'attributo retentionPeriod indica il periodo di conservazione dei backup creati automaticamente. Puoi modificare il periodo di conservazione di un backup fino a 90 giorni dalla data di creazione del backup. Per aggiornare il periodo di conservazione del backup, consulta Modificare un backup.

Crea backup

Console

  1. Vai alla pagina Istanze Bigtable nella console Google Cloud.

    Apri l'elenco delle istanze

  2. Fai clic sull'istanza che contiene la tabella di cui vuoi eseguire il backup.

  3. Nel riquadro di navigazione a sinistra, fai clic su Tabelle.

  4. Fai clic su Crea backup per la tabella di cui vuoi eseguire il backup.

  5. Se utilizzi la replica, usa il menu a discesa per scegliere l'ID cluster per il cluster in cui archiviare il backup. Se hai fatto clic su Crea backup accanto a un ID cluster anziché a un ID istanza nella pagina Tabelle, il cluster è preselezionato.

  6. Inserisci un ID univoco per il backup.

  7. Imposta una data di scadenza.

  8. Fai clic su Crea.

    Nella console viene visualizzata la pagina Backup filtrata in modo da mostrare il backup e i relativi dettagli.

  9. Fai clic su Attività per visualizzare lo stato del backup.

    La colonna dello stato mostra Backup completato quando il backup è stato completato.

gcloud

Per tutti i comandi, sostituisci i valori effettivi con i seguenti valori:

  • INSTANCE_ID: l'identificatore permanente dell'istanza.
  • CLUSTER_ID: l'identificatore permanente del cluster.
  • TABLE_ID: l'ID della tabella di cui eseguire il backup.
  • BACKUP_ID: l'ID assegnato al backup.
  • EXPIRATION_DATE: una data con un massimo di 90 giorni nel futuro, formattata come timestamp UTC "Zulu", con precisione in nanosecondi.

    Esempio: 2022-10-02T15:01:23.045123456Z

  • RETENTION_PERIOD: un periodo di massimo 90 giorni, espresso in numero con un'unità di m, h o d (minuti, ore o giorni).

    Esempi: 36h o 89d

  1. Se non conosci l'ID istanza, usa il comando bigtable instances list per visualizzare un elenco delle istanze del tuo progetto:

    gcloud bigtable instances list
    
  2. Visualizza l'elenco dei backup per l'istanza che contiene la tabella di cui vuoi eseguire il backup, in modo da poter scegliere un ID backup non ancora in uso nel cluster previsto.

    gcloud bigtable backups list --instance=INSTANCE_ID \
      --cluster=CLUSTER_ID
    
  3. Visualizza l'elenco delle tabelle per confermare l'ID della tabella di cui vuoi eseguire il backup.

    gcloud bigtable instances tables list --instances=INSTANCE_ID
    
  4. Esegui il comando gcloud bigtable instances backup create per creare un backup dalla tabella, fornendo una data di scadenza o un periodo di conservazione fino a 90 giorni.

    gcloud bigtable backups create BACKUP_ID --instance=INSTANCE_ID \
      --cluster=CLUSTER_ID \
      --table=TABLE_ID \
      --async /
      --expiration-date=EXPIRATION_DATE \
      --retention-period=RETENTION_PERIOD
    

    Il flag --async è facoltativo. Da utilizzare se vuoi che il terminale restituisca l'ID operazione prima del completamento. Questo è utile se vuoi controllare lo stato dell'operazione.

  5. Visualizza l'elenco dei backup per verificare se è stato creato.

    gcloud bigtable backups list --instance=INSTANCE_ID \
      --cluster=CLUSTER_ID
    
  6. Se il backup non è presente nell'elenco, controlla lo stato dell'operazione.

    Lo stato Ready indica che il backup è stato completato.

Ripristina da un backup

Console

Non puoi ripristinare un progetto diverso utilizzando la console Google Cloud. Se necessario, utilizza invece gcloud CLI.

  1. Vai alla pagina Istanze Bigtable nella console Google Cloud.

    Apri l'elenco delle istanze

  2. Fai clic sull'istanza che contiene il backup da ripristinare.

  3. Nel riquadro di navigazione a sinistra, fai clic su Backup.

  4. Fai clic su Ripristina in corrispondenza del backup che vuoi ripristinare.

  5. Seleziona l'istanza in cui vuoi eseguire il ripristino.

    Le istanze che non hanno spazio di archiviazione sufficiente per la nuova tabella non sono disponibili. Se non hai l'autorizzazione per creare una tabella in un'istanza, l'istanza non è disponibile. Passa il mouse sopra l'icona per ulteriori informazioni.

    Se esegui il ripristino da un backup protetto da CMEK, anche l'istanza di destinazione deve essere protetta da CMEK.

    Non puoi eseguire il ripristino in un progetto diverso utilizzando la console Google Cloud. Se necessario, utilizza gcloud CLI.

  6. Inserisci un ID univoco per la tabella che verrà creata dal backup. Non potrai modificare questo ID in un secondo momento.

  7. Fai clic su Ripristina.

    Nella console viene visualizzata la pagina Tabelle filtrata per mostrare la nuova tabella.

    La console mostra lo stato di ripristino per ciascun cluster. Quando la colonna dello stato per tutti i cluster indica Pronto, la tabella è stata ripristinata e replicata in tutti i cluster nell'istanza.

gcloud

Per tutti i comandi, sostituisci i valori effettivi con i seguenti valori:

  • PROJECT_ID_SOURCE: l'ID del progetto contenente il backup da cui eseguire il ripristino.
  • INSTANCE_ID_SOURCE: l'ID permanente dell'istanza di origine.
  • PROJECT_ID_DESTINATION: l'ID del progetto in cui vuoi eseguire il ripristino. Questo flag è facoltativo. Se non specifichi questa opzione, il backup viene ripristinato in una nuova tabella nella stessa istanza in cui è stato creato.
  • INSTANCE_ID_DESTINATION: l'ID permanente dell'istanza di destinazione.
  • CLUSTER_ID: l'identificatore permanente del cluster.
  • BACKUP_ID: l'ID del backup da cui vuoi eseguire il ripristino.
  • TABLE_ID_NEW: l'ID della nuova tabella.
  1. Se non conosci l'ID istanza, usa il comando bigtable instances list per visualizzare un elenco delle istanze del tuo progetto:

    gcloud bigtable instances list
    
  2. Visualizza l'elenco dei backup per l'istanza che contiene il backup per verificare che il backup esista.

    gcloud bigtable backups list --instance=INSTANCE_ID_SOURCE \
      --cluster=CLUSTER_ID_SOURCE
    
  3. Visualizza l'elenco delle tabelle nell'istanza di destinazione, in modo da poter scegliere un ID per la nuova tabella che non è già in uso.

    gcloud bigtable instances tables list --instances=INSTANCE_ID_DESTINATION
    
  4. Esegui il comando gcloud bigtable instances table restore per eseguire il ripristino dal backup a una nuova tabella.

    gcloud bigtable instances tables restore \
    --source=projects/PROJECT_ID_SOURCE/instances/INSTANCE_ID_SOURCE/clusters/CLUSTER_ID/backups/BACKUP_ID \
    --async \
    --destination=TABLE_ID_NEW \
    --destination-instance=INSTANCE_ID_DESTINATION \
    --project=PROJECT_ID_DESTINATION
    

    Il flag --async è facoltativo. Da utilizzare se vuoi che il terminale restituisca l'ID operazione prima del completamento. Questo è utile se vuoi controllare lo stato dell'operazione.

  5. Visualizza l'elenco delle tabelle per verificare se è stata creata.

    gcloud bigtable instances tables list --instances=INSTANCE_ID_DESTINATION
    
  6. Se il backup non è presente nell'elenco, controlla lo stato dell'operazione.

Crea una copia di un backup

Console

Non puoi creare una copia di un backup in un progetto diverso utilizzando la console. Se devi farlo, utilizza invece gcloud CLI.

  1. Vai alla pagina Istanze Bigtable nella console Google Cloud.

    Apri l'elenco delle istanze

  2. Fai clic sull'istanza che contiene il backup da copiare.

  3. Nel riquadro di navigazione a sinistra, fai clic su Backup.

  4. Per il backup che vuoi copiare, espandi il menu Altro accanto alla parola Ripristina, quindi fai clic su Copia.

  5. Fai clic su Copia per il backup di cui vuoi creare una copia.

    Se il backup è una copia di un altro backup, Copia non è disponibile.

  6. Seleziona l'istanza di destinazione.

    Non puoi creare una copia di un backup in un progetto diverso utilizzando la console. Se devi farlo, utilizza l'interfaccia a riga di comando gcloud.

    Le istanze che non dispongono di spazio di archiviazione sufficiente per la copia di backup non sono disponibili. Se non hai l'autorizzazione per creare un backup in un'istanza, questa non è disponibile. Tieni il puntatore sopra l'icona per ulteriori informazioni.

    Se copi un backup protetto da CMEK, anche l'istanza di destinazione deve essere protetta da CMEK.

  7. Seleziona il cluster di destinazione.

    Come ogni backup, una copia di backup viene archiviata in un solo cluster in un'istanza, anche se l'istanza utilizza la replica.

  8. Inserisci un ID univoco per la copia che verrà creata dal backup. Non potrai modificare questo ID in un secondo momento.

  9. Imposta una scadenza per la copia di backup, fornendo un valore per Tempo e selezionando un'Unità dal menu a discesa.

  10. Fai clic su Copia.

  11. Per visualizzare la copia, fai clic su Visualizza copia.

    Nella console viene visualizzata la pagina Backup per l'istanza di destinazione, filtrata in base alla copia di backup appena creata. Quando la colonna dello stato indica Pronto, la copia è completa ed è pronta per ulteriori operazioni.

gcloud

Per tutti i comandi, sostituisci i valori effettivi con i seguenti valori:

  • PROJECT_ID_SOURCE: il progetto contenente il backup da copiare.
  • INSTANCE_ID_SOURCE: l'ID permanente dell'istanza di origine.
  • CLUSTER_ID_SOURCE: l'ID del cluster in cui è archiviato il backup di origine.
  • BACKUP_ID_SOURCE: l'ID del backup da copiare.
  • PROJECT_ID_DESTINATION: il progetto in cui vuoi inserire la copia.
  • INSTANCE_ID_DESTINATION: l'ID permanente dell'istanza di destinazione.
  • CLUSTER_ID_DESTINATION: l'ID del cluster nell'istanza di destinazione in cui vuoi archiviare la copia.
  • BACKUP_ID_DESTINATION: l'ID assegnato alla copia del backup.
  • RETENTION_PERIOD: la durata della copia di backup, espressa sotto forma di numero e unità (d o h). Alcuni esempi sono 5d per cinque giorni o 15h per 15 ore. Utilizza questa data o una data di scadenza.
  • EXPIRATION_DATE: la data e l'ora di scadenza della copia di backup, formattate come 2022-09-01T10:00:00.0Z.
  1. Se non conosci l'ID istanza, usa il comando bigtable instances list per visualizzare un elenco delle istanze del tuo progetto:

    gcloud bigtable instances list
    
  2. Visualizza l'elenco dei backup per l'istanza di origine che contiene il backup, per verificare che il backup che vuoi copiare esista.

    gcloud bigtable backups list --instance=INSTANCE_ID_SOURCE \
    --cluster=CLUSTER_ID_SOURCE
    
  3. Visualizza l'elenco dei backup nell'istanza di destinazione, in modo da poter scegliere un ID per la copia che non sia già in uso.

    gcloud bigtable backups list --instances=DESTINATION_INSTANCE
    
  4. Esegui il comando gcloud bigtable instances backup copy per creare la copia di backup.

    gcloud bigtable backups copy \
      --source-project=PROJECT_ID_SOURCE \
      --source-instance=INSTANCE_ID_SOURCE \
      --source-cluster=CLUSTER_ID_SOURCE \
      --source-backup=BACKUP_ID_SOURCE \
      --destination-project=PROJECT_ID_DESTINATION \
      --destination-instance=INSTANCE_ID_DESTINATION \
      --destination-cluster=CLUSTER_ID_DESTINATION \
      --destination-backup=BACKUP_ID_DESTINATION \
    

    Aggiungi il comando con uno dei seguenti elementi:

    • --retention-period`=RETENTION_PERIOD: periodo di conservazione della copia di backup. Deve essere di almeno 6 ore e al massimo 30 giorni dal momento della creazione del backup dell'origine.
    • --expiration-date`=EXPIRATION_DATE: scadenza della copia di backup. Deve essere di almeno 6 ore e al massimo 30 giorni dal momento della creazione del backup dell'origine.

    Se vuoi, puoi aggiungere --async al comando. Utilizzalo se vuoi che il terminale restituisca l'ID operazione prima del completamento dell'operazione. Questo è utile se vuoi controllare lo stato dell'operazione.

    Se viene restituito un messaggio di timeout, il backup potrebbe essere andato a buon fine e la copia potrebbe essere stata creata.

  5. Visualizza l'elenco dei backup per verificare se la copia è stata creata.

    gcloud bigtable backups list --instances=INSTANCE_ID_DESTINATION
    
  6. Se il backup non è presente nell'elenco, controlla lo stato dell'operazione.

Nel raro caso in cui un'operazione di copia di backup non vada a buon fine a causa di limitazioni della capacità, riprova con un cluster di destinazione diverso. Se anche l'operazione non riesce, contatta l'assistenza.

Controllare lo stato di un'operazione

Console

  1. Vai alla pagina Istanze Bigtable nella console Google Cloud.

    Apri l'elenco delle istanze

  2. Fai clic sull'istanza che contiene il backup.

  3. Nel riquadro di navigazione a sinistra, fai clic su Backup.

  4. Nella pagina Backup, fai clic su Attività. La colonna Stato mostra lo stato attuale di ogni operazione.

Gli stati delle operazioni durante il ripristino di una tabella sono i seguenti:

  • Copia in attesa
  • Ripristino backup in corso
  • Inizializzazione in corso
  • Ottimizzazione pronta
  • Pronto

Gli stati dell'operazione durante la creazione di un backup sono i seguenti:

  • Creazione del backup in corso
  • Backup completato

Gli stati di operazione durante la copia di un backup sono i seguenti:

  • Copia del backup in corso
  • Backup copiato

gcloud

Per controllare lo stato di un'operazione di backup o ripristino, devi disporre dell'ID univoco dell'operazione. Di seguito è riportato un esempio di ID operazione:

`instances/instance-name/tables/table-name/locations/us-east1-b/operations/917168358249360635`

Dopo aver eseguito un comando per creare un backup o un ripristino in una nuova tabella utilizzando l'opzione --async, nel terminale viene visualizzato l'ID operazione.

  1. Copia l'ID operazione.

  2. Esegui il comando gcloud bigtable Operations describe, sostituendo il valore copiato per OPERATION_ID.

    gcloud bigtable operations describe OPERATION_ID
    

    Esempio:

    gcloud bigtable operations describe \
    instances/instance-name/tables/table-name/locations/us-east1-b/operations/917168358249360635
    

    Puoi eseguire questo comando a intervalli regolari fino a quando il valore di DONE non è TRUE.

Se non conosci l'ID operazione, perché non hai appena eseguito il comando o ti trovi in una finestra del terminale diversa, puoi visualizzare un elenco di operazioni per l'istanza e determinare quale operazione vuoi controllare.

  1. Visualizza un elenco delle attività recenti per l'istanza che contiene la tabella in cui stai eseguendo il backup o il ripristino, sostituendo l'ID dell'istanza per INSTANCE_ID:

    gcloud bigtable operations list --instance=INSTANCE_ID
    

    Il terminale visualizza un elenco di operazioni nelle colonne etichettate NAME, START_TIME, END_TIME e DONE. Il valore nella colonna NAME è l'ID operazione.

  2. Copia l'ID operazione partendo dalla prima voce dell'elenco.

  3. Usa gcloud bigtable Operations describe per visualizzare i metadati dell'operazione.

    gcloud bigtable operations describe OPERATION_ID
    

    Esempio:

    gcloud bigtable operations describe \
    instances/instance-name/tables/table-name/locations/us-east1-b/operations/917168358249360635
    
  4. Se i metadati di un'operazione mostrano un valore per backupInfo, hai trovato l'operazione corretta e puoi ripetere il comando ogni tanto finché il valore di DONE non è TRUE.

    Se nei metadati non viene visualizzato un valore per backupInfo, controlla l'operazione successiva nell'elenco delle operazioni visualizzato nel passaggio 1.

Modificare una copia di backup o di backup

Console

La console Google Cloud non consente di modificare un backup, incluse le copie.

gcloud

gcloud CLI consente di modificare la data o il periodo di scadenza di una copia di backup o di backup.

Per tutti i comandi, sostituisci i valori effettivi con i seguenti valori:

  • INSTANCE_ID: l'identificatore permanente dell'istanza.
  • CLUSTER_ID: l'identificatore permanente del cluster.
  • BACKUP_ID: l'ID univoco di un backup.
  • EXPIRATION_DATE: una data con un massimo di 90 giorni nel futuro, formattata come timestamp UTC "Zulu", con precisione in nanosecondi.

    Esempio: 2019-10-02T15:01:23.045123456Z

  • RETENTION_PERIOD: un periodo di massimo 90 giorni, espresso in formato con un'unità di m, h o d (minuti, ore o giorni).

    _Examples_: `36h` or `89d`
    
  1. Visualizza un elenco dei backup:

        gcloud bigtable backups list --instance=INSTANCE_ID
    

    Il terminale visualizza un elenco di backup.

  2. Prendi nota degli ID backup e cluster del backup da aggiornare.

  3. Esegui il comando gcloud bigtable instancesBackup update per aggiungere una nuova data di scadenza o un nuovo periodo di conservazione.

      gcloud bigtable backups update BACKUP_ID \
      --instance=INSTANCE_ID \
      --cluster=CLUSTER_ID \
      --expiration-date=EXPIRATION_DATE \
      --retention-period=RETENTION_PERIOD
    
  4. Esegui il comando gcloud bigtable instancesBackup describe per verificare di aver aggiornato correttamente la scadenza.

        gcloud bigtable backups describe BACKUP_ID \
        --instance=INSTANCE_ID \
        --cluster=CLUSTER_ID
    ```
    

Eliminare un backup

Se vuoi eliminare un backup dopo averne creato una copia, controlla lo stato per verificare che l'operazione di copia sia stata completata.

Console

  1. Vai alla pagina Istanze Bigtable nella console Google Cloud.

    Apri l'elenco delle istanze

  2. Fai clic sull'istanza che contiene il backup.

  3. Nel riquadro di navigazione a sinistra, fai clic su Backup.

  4. Per il backup da eliminare, espandi il menu Altro accanto alla parola Ripristina, quindi fai clic su Elimina.

  5. Inserisci l'ID backup nel campo Conferma eliminazione, quindi fai clic su Elimina.

gcloud

  1. Visualizza un elenco di backup, sostituendo l'ID dell'istanza per INSTANCE_ID:

    gcloud bigtable backups list --instance=INSTANCE_ID
    

    Il terminale visualizza un elenco di backup.

  2. Prendi nota dell'ID backup e dell'ID del cluster in cui è archiviato.

  3. Esegui il comando gcloud bigtable instancesBackup delete, sostituendo l'ID backup che hai annotato per BACKUP_ID e l'ID cluster per CLUSTER_ID.

    gcloud bigtable backups delete BACKUP_ID \
      --instance=INSTANCE_ID \
      --cluster=CLUSTER_ID
    

Passaggi successivi