Panoramica dei backup

Questo documento fornisce una panoramica dei backup e delle pianificazioni dei backup di Spanner.

Spanner ti consente di creare backup completi dei database on demand e backup completi o incrementali utilizzando una pianificazione dei backup. I backup completi memorizzano l'intera quantità di dati di un database, mentre i backup incrementali contengono solo i dati che sono cambiati rispetto a un backup precedente.

Puoi ripristinare i backup quando errori dell'operatore o dell'applicazione causano il danneggiamento dei dati logici.

I backup sono ad alta disponibilità, criptati e possono essere conservati per un massimo di un anno dal momento della loro creazione. Quando crei un backup, questo si trova nella stessa istanza, regione e progetto del database di origine. Se devi ripristinare il backup in una regione o un progetto diverso per motivi di conformità o continuità aziendale, puoi copiarlo in un'istanza in una regione o un progetto separati.

A ogni backup sono associati createTime e versionTime. createTime è il timestamp in cui Spanner inizia a creare il backup. versionTime è il timestamp in cui i contenuti del database vengono acquisiti nel backup. Il backup contiene una vista coerente del database al versionTime.

Per i backup on demand, createTime e versionTime sono uguali per impostazione predefinita. Se necessario, puoi specificare un versionTime precedente quando crei un backup on demand se rientra nel periodo di conservazione della versione del database.

Per i backup pianificati, versionTime è l'ora scelta al momento della creazione della pianificazione del backup. Spanner inizia a creare il backup entro quattro ore dal giorno versionTime, quindi il giorno createTime rientra in questa finestra di quattro ore. A differenza dei backup on demand, in cui Spanner inizia a creare il backup quando riceve la richiesta.

Ad esempio, supponiamo che tu crei una pianificazione del backup con una frequenza di 0 7 * * * UTC o ogni giorno alle 07:00 UTC. Ciò significa che per ogni backup, versionTime è impostato su 07:00 UTC e createTime è un timestamp all'interno della finestra di quattro ore tra le 07:00 UTC e le 11:00 UTC.

Per ulteriori informazioni sull'utilizzo di createTime e versionTime con l'API, consulta il riferimento all'API di backup.

Funzionalità principali

  • Coerenza dei dati: i backup di un database Spanner sono coerenti dal punto di vista transazionale e esterno al versionTime del backup.

  • Replica: i backup si trovano nella stessa istanza del database di origine e vengono replicati nelle stesse posizioni geografiche. Per le istanze a livello di regione, il backup viene archiviato in ciascuna delle tre zone di lettura e scrittura. Per le istanze a due regioni e multi-regionali, il backup viene archiviato in tutte le zone che contengono una replica di lettura/scrittura o di sola lettura. Se devi archiviare il backup del tuo database in una regione o un progetto diverso, puoi copiare il backup completato dall'istanza di origine a un'istanza di destinazione in una regione o un progetto diverso. Per ulteriori informazioni, consulta la sezione Copiare un backup.

  • Scadenza automatica: tutti i backup hanno una data di scadenza specificata dall'utente che determina quando vengono eliminati automaticamente. Spanner elimina i backup scaduti in modo asincrono, pertanto potrebbe esserci un ritardo tra la scadenza di un backup e la sua eliminazione effettiva.

Creazione del backup

Quando crei un backup, questo si trova nella stessa istanza, regione e progetto del database di origine.

Un backup contiene le seguenti informazioni del database al versionTime del backup:

  • Un backup completo contiene tutti i dati. Un backup incrementale contiene solo i dati che sono cambiati rispetto a un backup precedente.
  • Informazioni sullo schema, inclusi nomi di tabelle, campi, tipi di dati, indici secondari, stream di variazioni e le relazioni tra queste entità.
  • Tutte le opzioni di database impostate con il comando ALTER DATABASE SET OPTIONS.

Un backup di Spanner non include le seguenti informazioni:

  • Eventuali modifiche ai dati o allo schema dopo il versionTime.
  • I criteri Identity and Access Management (IAM).
  • Modificare i record dei dati dello stream. Sebbene lo schema dei flussi di modifiche sia archiviato, i dati dei flussi di modifiche devono essere trasmessi e utilizzati quasi contemporaneamente alle modifiche che descrivono.

Per contribuire a garantire la coerenza esterna del backup, Spanner blocca i contenuti del database al momento versionTime. In questo modo, il sistema di raccolta del garbage impedisce la rimozione dei valori dei dati pertinenti per la durata dell'operazione di backup. A questo punto, ogni zona di lettura/scrittura e di sola lettura nell'istanza inizia a copiare i dati in parallelo. Se una zona è temporaneamente non disponibile, il backup non viene completato finché la zona non torna online. I backup possono essere ripristinati non appena l'operazione è completata. Per le istanze multiregione, tutte le zone di lettura/scrittura e di sola lettura in tutte le regioni devono completare le relative repliche di backup prima che il backup venga contrassegnato come recuperabile.

Pianificazioni di backup

Spanner ti consente di pianificare backup completi o incrementali per i database. Un backup incrementale contiene solo i dati che sono cambiati rispetto a un backup precedente, mentre i backup completi memorizzano l'intero contenuto del database. Puoi specificare il tipo di pianificazione del backup (completo o incrementale) e la frequenza con cui Spanner deve creare i backup.

Una pianificazione del backup completo può creare un backup ogni 12 ore o più. Una pianificazione del backup incrementale può creare un backup ogni 4 ore o più.

Spanner offre backup incrementali per il tuo database tramite una pianificazione del backup. Non puoi creare un backup incrementale on demand.

La creazione del backup inizia entro quattro ore dall'ora pianificata. Puoi avere un massimo di quattro pianificazioni del backup per database.

Backup incrementali

I backup incrementali formano catene tra i backup completi. Il primo backup creato da una pianificazione del backup incrementale è un backup completo. I backup consecutivi creati nella catena sono backup incrementali, ciascuno contenente solo i dati che sono cambiati dal backup precedente nella catena.

Spanner consente fino a 13 backup incrementali per catena, oltre al backup completo iniziale. Una catena viene identificata dal valore incrementalBackupChainId corrispondente. Quando una catena raggiunge la sua lunghezza massima, Spanner ne crea una nuova, a partire dal backup completo iniziale.

In alcuni scenari, Spanner potrebbe creare una nuova catena prima che si verifichi la lunghezza massima della catena. Di seguito sono riportati alcuni scenari:

  • L'ultimo backup completo è stato eseguito 28 o più giorni fa.
  • Il backup più recente della catena viene eliminato.
  • La pianificazione del backup incrementale viene modificata.

Ecco alcuni fattori che possono aiutarti a prendere una decisione sull'utilizzo dei backup incrementali:

  • Crittografia: i backup incrementali supportano la crittografia utilizzando soloGoogle-owned and Google-managed encryption keys , anche se il database è criptato da una chiave di crittografia gestita dal cliente (CMEK).

  • Ripristino: il ripristino di un backup incrementale potrebbe richiedere più tempo rispetto al ripristino di un backup completo contenente gli stessi dati.

  • Eliminazione: se elimini un backup in una catena o se scade, Spanner potrebbe comunque conservarlo per supportare i backup più recenti nella catena, se esistenti. Spanner ha bisogno di tutti i backup precedenti nella catena per ripristinare un backup incrementale. Per eliminare tutti i dati di una catena di backup, inclusi quelli dei backup scaduti o eliminati, elimina tutti i backup della catena.

  • Ritenuta: ogni pianificazione del backup contiene i seguenti termini che forniscono informazioni sulla pianificazione:

    • creation_interval: rappresenta la frequenza di pianificazione specificata per la programmazione del backup.
    • retention_duration: indica il periodo di conservazione dei backup creati dalla pianificazione. Per una determinata catena, il backup completo più vecchio viene mantenuto oltre la data di scadenza originale se è necessario supportare i backup più recenti della catena. La durata totale di conservazione del backup completo è al massimo il valore più basso tra i seguenti:
      • retention_duration + 28 giorni
      • retention_duration + (creation_interval*14)
  • Copia di backup: quando copi un backup incrementale, Spanner copia la catena di backup, a partire dal backup completo iniziale e terminando con il backup incrementale specifico che vuoi copiare. Spanner ti addebita in base allo spazio di archiviazione totale utilizzato.

Per ulteriori informazioni sulla creazione di backup incrementali, consulta Creare e gestire le pianificazioni dei backup.

Pianificazioni dei backup predefiniti

Quando crei una nuova istanza Spanner, puoi specificare se vuoi che Spanner crei una pianificazione del backup predefinita per ogni nuovo database nell'istanza. La pianificazione del backup predefinita crea un backup completo ogni 24 ore. Questi backup hanno un periodo di conservazione di 7 giorni. Puoi modificare o eliminare la pianificazione del backup predefinita una volta creata.

Le pianificazioni dei backup predefinite vengono attivate automaticamente per tutte le nuove istanze. Puoi attivare o disattivare le pianificazioni dei backup predefinite in un'istanza durante la creazione o in un secondo momento modificando l'istanza.

Puoi attivare le pianificazioni dei backup predefinite per le istanze esistenti. Tuttavia, le pianificazioni dei backup predefinite non si applicano ai database esistenti nell'istanza. Le pianificazioni dei backup predefinite si applicano solo ai nuovi database nell'istanza.

La pianificazione dei backup predefinita richiede 24 ore per diventare attiva e iniziare a creare i backup.

Devi eliminare tutti i backup di un'istanza prima di eliminarla. Se crei e elimini istanze a scopo di test, puoi eliminare la nuova istanza entro 24 ore per evitare di eliminare manualmente i relativi backup.

Per istruzioni su come attivare o disattivare le pianificazioni dei backup predefinite, consulta Modificare il tipo di pianificazione del backup predefinito.

Costi di archiviazione per i backup completi e incrementali

Ogni backup di Spanner contiene i seguenti campi che forniscono informazioni sul consumo di spazio di archiviazione:

  • exclusiveSizeBytes: mostra il numero di byte richiesti dal backup. Questa dimensione rappresenta quella fatturabile del backup.
  • freeableSizeBytes: mostra il numero di byte che vengono liberati se elimini il backup.
  • oldestVersionTime: mostra il versionTime del backup completo più antico della catena, anche se è scaduto. Puoi utilizzare questo campo per comprendere quali dati vengono archiviati.

I backup incrementali possono farti risparmiare sui costi di archiviazione. Un backup incrementale potrebbe avere un campo exclusiveSizeBytes molto più piccolo di un backup completo, in quanto deve memorizzare solo le modifiche dal backup precedente nella catena. L'aggiunta di questo valore di campo per ogni backup della catena riflette il numero totale di byte utilizzati dai backup della catena.

Un backup incrementale dipende da tutti i backup precedenti della stessa catena per il ripristino. Ciò significa che, se esiste un backup incrementale più recente, i dati di tutti i backup precedenti della catena non possono essere eliminati dal sistema e il campo freeableSizeBytes per tutti i backup precedenti della stessa catena è pari a zero.

Supponiamo che tu abbia creato una pianificazione per il backup completo e una per il backup incrementale per un database di 100 GB che aumenta di 10 GB ogni giorno. La tabella seguente mostra i possibili costi di archiviazione per queste pianificazioni dei backup:

Giorno Dimensione del backup pianificato completo Dimensioni del backup pianificato incrementale
1 100 GB 100 GB
2 110 GB 10 GB
3 120 GB 10 GB
4 130 GB 10 GB
5 140 GB 10 GB

Nell'arco di 5 giorni, la pianificazione del backup completo utilizza 600 GB di spazio di archiviazione, mentre la pianificazione del backup incrementale utilizza circa 140 GB di spazio di archiviazione. Per una pianificazione dei backup incrementali, le dimensioni del backup completo corrispondono alla somma delle dimensioni di tutti i backup della catena fino a quel backup e sono riportate nel campo sizeBytes.

Come funziona la copia dei backup

Spanner ti consente di copiare un backup del tuo database Spanner da un'istanza a un'altra in una regione o un progetto diverso per fornire funzionalità aggiuntive di conformità e protezione dei dati.

Non puoi copiare un backup se la regione di destinazione o di origine Google Cloud è inattiva. Per proteggere i tuoi dati in caso di interruzione del servizio in una regione, devi copiare periodicamente i backup in una posizione al di fuori della regione interessata.

Il backup copiato ha le stesse funzionalità principali del backup originale. Inoltre, puoi ripristinare un backup copiato nella stessa istanza del backup copiato per supportare i casi d'uso di backup e ripristino tra regioni e tra progetti.

Dove vengono archiviati i backup di Spanner

I backup sono risorse in Spanner. Ogni risorsa di backup è organizzata nella stessa istanza del database di origine nella gerarchia delle risorse e ha un percorso della risorsa che utilizza il seguente formato:

projects/PROJECT_ID/instances/INSTANCE_ID/backups/BACKUP_NAME

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto.
  • INSTANCE_ID: l'ID istanza.
  • BACKUP_NAME: il nome del backup.

Un backup continua a esistere anche dopo l'eliminazione del database di origine, ma non può sopravvivere all'istanza principale. Per evitare l'eliminazione accidentale dei backup, non puoi eliminare un'istanza Spanner se contiene backup. Se vuoi eliminare l'istanza, ti consigliamo di ripristinare il backup, quindi di esportare il database ripristinato, prima di eliminare il backup e l'istanza.

Crittografia

I backup di Spanner, come i database, vengono criptati daGoogle-owned and Google-managed encryption keys o da chiavi di crittografia gestite dal cliente (CMEK). Per impostazione predefinita, un backup utilizza la stessa configurazione di crittografia del database, ma puoi sostituire questo comportamento specificando una configurazione di crittografia diversa durante la creazione del backup. Se il backup è abilitato per CMEK, viene criptato utilizzando la versione principale della chiave KMS al momento della creazione del backup. Una volta creato il backup, la chiave e la relativa versione non possono essere modificate, anche se la chiave KMS viene ruotata. Per ulteriori informazioni, consulta Creare un backup abilitato per CMEK.

Un backup copiato utilizza la stessa configurazione di crittografia,Google-owned and Google-managed encryption keys o le chiavi di crittografia gestite dal cliente (CMEK), della crittografia del backup di origine. Puoi ignorare questo comportamento specificando una configurazione di crittografia diversa durante la copia del backup. Se vuoi che il backup copiato venga criptato con CMEK durante la copia tra regioni, specifica la chiave Cloud KMS corrispondente alla regione di destinazione.

Puoi specificare la configurazione della crittografia quando crei o modifichi la pianificazione del backup. Se vuoi che la pianificazione del backup crei backup criptati con le chiavi CMEK, devi specificare il percorso della chiave.

I backup incrementali supportano la crittografia utilizzando soloGoogle-owned and Google-managed encryption keys, anche se il database è criptato da una chiave CMEK.

Prestazioni

Questa sezione descrive le prestazioni ottimali del backup in Spanner.

Prestazioni durante il backup

Quando esegui un backup, Spanner crea un job di backup per copiare i dati direttamente dal database allo spazio di archiviazione di backup e ne determina le dimensioni in base alle dimensioni del database. Questo job di backup non utilizza le risorse della CPU allocate all'istanza del database, pertanto non influisce sulle prestazioni dell'istanza. Inoltre, il carico di calcolo sull'istanza del database non influisce sulla velocità dell'operazione di backup. Per monitorare l'avanzamento e il completamento di un'operazione di backup, consulta Mostrare lo stato del backup.

In genere, la maggior parte dei backup richiede 1-4 ore. Alcuni backup potrebbero richiedere più tempo a causa delle dimensioni o perché le risorse sono in coda internamente. Se un backup richiede più tempo del solito quando non sono stati modificati altri fattori, il motivo potrebbe essere un ritardo nella pianificazione dell'attività di backup in una zona. A volte l'operazione può richiedere fino a 30 minuti. Ti consigliamo di non annullare e riavviare il backup, in quanto è probabile che riscontrerai lo stesso ritardo nella programmazione con la nuova operazione di backup.

Prestazioni durante la copia di un backup

Il tempo necessario per copiare un backup dipende da fattori quali le dimensioni del backup di origine e la regione di destinazione scelta per il backup copiato. In genere, la maggior parte delle copie viene completata in 1-4 ore. Alcune copie potrebbero richiedere più tempo, a seconda delle dimensioni del backup e della regione di destinazione. La copia di un backup non ha implicazioni sulle prestazioni dell'istanza o del database di origine. Puoi creare più copie simultanee del backup di origine in istanze in regioni diverse senza problemi di prestazioni.

Quando copi un backup incrementale, Spanner copia anche tutti i backup precedenti della catena. Invece di copiare la catena di backup una volta alla volta, Spanner copia tutti i backup contemporaneamente per migliorare le prestazioni.

Eliminare un backup

Quando elimini un backup incrementale, potresti non recuperare spazio di archiviazione se esistono backup incrementali più recenti nella stessa catena. I backup incrementali più recenti dipendono dai dati presenti nel backup incrementale eliminato e dai backup precedenti della catena. Spanner conserva i dati e libera lo spazio di archiviazione solo alla scadenza di tutti i backup incrementali più recenti. Il campo freeableSizeBytes mostra la quantità di spazio di archiviazione che puoi recuperare se elimini il backup.

Prezzi

La fatturazione si basa sulla quantità di spazio di archiviazione utilizzata dai backup per unità di tempo. La fatturazione inizia al termine dell'operazione di backup e continua fino all'eliminazione del backup. Un backup completato viene fatturato per un minimo di 24 ore. Se crei un backup e lo elimini subito dopo il completamento, la fatturazione avviene comunque per 24 ore.

La copia di un backup è soggetta agli stesse spese di archiviazione di un backup originale. Se crei una copia tra due istanze che occupano regioni diverse, si applicano i costi di trasferimento dei dati in uscita.

Ad esempio, se copi il database dalla configurazione dell'istanza per più regioni di origine nam7 alla configurazione dell'istanza per più regioni di destinazione nam-eur-asia3, si applicano i seguenti addebiti:

  • Nessun addebito per la regione us-central1 sovrapposta
  • Nessun costo per la regione del testimone us-central2
  • L'addebito per il trasferimento di dati tra continenti viene applicato due volte: una volta per ogni nuovo continente (Europa e Asia).
  • L'addebito per il trasferimento di dati tra regioni all'interno dello stesso continente viene applicato una volta per us-east1
  • L'addebito per il trasferimento di dati tra regioni all'interno dello stesso continente viene applicato una volta in Europa

Spanner ottimizza il processo di copia per ridurre al minimo il numero di trasferimenti tra regioni. In questo modo, puoi ridurre al minimo i costi di trasferimento dei dati, offrendo al contempo un'esperienza di backup rapido tramite copia.

I backup vengono archiviati e fatturati separatamente. Lo spazio di archiviazione dei backup non influisce sulla fatturazione dello spazio di archiviazione del database o sui limiti di spazio di archiviazione del database. Per ulteriori informazioni, consulta anche le Metriche sull'utilizzo dello spazio di archiviazione.

Per informazioni più complete sui costi di backup, consulta i prezzi di Spanner.

Passaggi successivi