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.
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 dual-region 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 momento del backup:versionTime
- 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, modifiche in tempo reale 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 modifiche in tempo reale 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 garbage collection 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 è 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 una finestra di 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:
- Il backup completo più vecchio è stato eseguito da almeno 28 giorni.
- 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 solo con chiavi gestite da Google, 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 giorniretention_duration
+ (creation_interval
*14)
Copia di backup: quando copi un backup incrementale, Spanner copia la catena di backup, iniziando 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 dei backup predefinita per ogni nuovo database nell'istanza. La pianificazione dei 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 dei backup predefinita dopo averla 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, vedi Modificare il tipo di pianificazione dei 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 ilversionTime
del backup completo più antico della catena, anche se è scaduto. Puoi utilizzare questo campo per capire 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 i backup completi e una per i backup incrementali 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 completo pianificato | Dimensioni del backup con pianificazione 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 sono la 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
Il backup e il ripristino di Spanner ti consentono 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. Il backup copiato ha le stesse funzionalità principali del backup originale. Inoltre, puoi restore 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 con chiavi di crittografia gestite da Google o con 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 diversa configurazione di crittografia al momento della 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, gestita da Google o 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 sia 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 dei 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 solo le chiavi gestite da Google, 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 tutti i backup più recenti della catena. Invece di copiare la catena di backup una volta alla volta, Spanner copia tutti i backup contemporaneamente per migliorare il rendimento.
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 addebito 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
Per creare i backup, consulta Creare i backup.
Per gestire i backup, vedi Gestire i backup.