Panoramica dei backup

Il backup di Spanner consente di creare backup dei database Spanner on demand e ripristinarli per garantire protezione dagli errori dell'operatore e dell'applicazione che causano il danneggiamento logico dei dati. I backup sono ad alta disponibilità, criptati e possono essere conservati per un massimo di un anno dal momento della creazione. Quando crei un backup, questo risiede nella stessa istanza, regione e progetto del database di origine. Se devi ripristinare il backup in una regione o in un progetto diversi per motivi di conformità o di continuità aziendale, puoi copiare il backup in un'istanza in una regione o un progetto a parte. Per conservare i backup per più di un anno, ti consigliamo di esportare il database. Per proteggerti dal danneggiamento logico dei dati, Spanner offre anche il recupero point-in-time. Puoi anche abilitare la protezione da eliminazione dei database per impedire l'eliminazione accidentale dei database.

Funzionalità principali

  • Coerenza dei dati: i backup sono una copia transazionale ed con coerenza esterna di un database Spanner nel punto version_time del backup.

  • Replica: i backup risiedono 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 o più regioni, il backup viene archiviato in tutte le zone che contengono una replica di lettura e scrittura o di sola lettura. Se devi archiviare il backup del tuo database in un'altra regione o in un progetto diverso, puoi copiare il backup completato dall'istanza di origine a un'istanza di destinazione che si trova in una regione o in un progetto diversi. Per ulteriori informazioni, vedi Copiare un backup.

  • Scadenza automatica: tutti i backup hanno una data di scadenza specificata dall'utente che determina quando verranno eliminati automaticamente. Spanner elimina i backup scaduti in modo asincrono, perciò può verificarsi un ritardo tra la scadenza di un backup e il momento in cui viene effettivamente eliminato.

La tabella seguente descrive diverse strategie di backup, l'approccio consigliato per implementare il piano e il tempo di conservazione massimo per l'approccio suggerito.

Strategia di backup Approccio consigliato Tempo di conservazione massimo per l'approccio suggerito
Archiviazione del backup di un database nella stessa istanza, regione e progetto del relativo database di origine Crea un backup. 1 anno
Archiviazione del backup di un database in un'istanza, una regione o un progetto diversi dal relativo database di origine (ad esempio, un backup tra regioni o tra progetti) Crea un backup, quindi copialo in un'istanza in un'altra regione o in un altro progetto. 1 anno
Archiviazione del backup in Cloud Storage Esporta il database in un bucket Cloud Storage. Per un confronto dettagliato tra backup ed esportazione, vedi Scegliere tra backup e ripristino o importazione ed esportazione. Illimitato (conservato fino all'eliminazione)
Recupero point-in-time (PITR) Per recuperare i dati da un momento specifico nel passato, scegli PITR. Puoi modificare il database version_retention_period dal valore predefinito di 1 ora a un massimo di 7 giorni. 7 giorni

Controllo dell'accesso con Identity and Access Management (IAM)

Con IAM puoi controllare l'accesso alle risorse Spanner, che includono i backup. Se non hai mai utilizzato IAM, i ruoli e le autorizzazioni, consulta la panoramica di IAM per un'introduzione.

Le risorse di backup sono organizzate sotto le istanze nella gerarchia delle risorse Spanner. Consigliamo di applicare i criteri IAM a livello di progetto o istanza. Se hai bisogno di un controllo granulare, i criteri IAM possono essere applicati anche a livello di backup e database, ma questo non è consigliato a causa della complessità. Ricorda che i backup non contengono metadati di database come i criteri IAM, quindi quando ripristini un database, quest'ultimo erediterà inizialmente i criteri dall'istanza principale.

Questa sezione descrive i ruoli predefiniti che hanno accesso a backup e ripristino.

I ruoli seguenti sono progettati specificamente per il backup:

  • spanner.backupAdmin: ha accesso per creare, visualizzare, aggiornare, copiare ed eliminare i backup. Questo ruolo può anche visualizzare e gestire il criterio IAM di un backup. Questo ruolo non può ripristinare un database da un backup.
  • spanner.backupWriter: ha accesso per creare e copiare backup, ma non può aggiornarli o eliminarli. Questo ruolo è destinato a essere utilizzato dagli script che automatizzano la creazione dei backup.

Anche i ruoli seguenti hanno accesso ai backup di Spanner:

  • spanner.admin: ha accesso completo al backup. Questo ruolo ha accesso completo a tutte le risorse Spanner.
  • owner: ha accesso completo al backup.
  • editor: ha accesso completo al backup.
  • viewer: può visualizzare i backup e le operazioni di backup. Questo ruolo non può creare, aggiornare, eliminare o copiare un backup.

Per ulteriori informazioni, consulta IAM di Spanner.

Come funziona la creazione del backup

Puoi creare un backup di qualsiasi database Spanner. Questi backup sono completi, nel senso che contengono tutti i dati presenti nel database (inclusi lo schema e gli indici secondari) nella posizione version_time del backup. Eventuali modifiche ai dati o allo schema dopo il version_time non vengono incluse nel backup. I backup includono tutte le opzioni di database impostate con il comando ALTER DATABASE SET OPTIONS, ma non includono i criteri di Identity and Access Management (IAM). Quando crei un backup, questo si trova nella stessa istanza, regione e progetto del suo database di origine.

Puoi creare un backup nei seguenti modi:

Quando crei un backup, devi specificare un database di origine, un nome per la risorsa di backup e una data di scadenza (fino a 1 anno dalla data di creazione del backup). Facoltativamente, puoi specificare un elemento version_time, che consente di eseguire il backup del database a un momento precedente. Il campo version_time in genere viene utilizzato per sincronizzare i backup di più database o per recuperare i dati utilizzando il recupero point-in-time. Se version_time non viene specificato, viene impostato sul create_time del backup. Il sistema crea una risorsa di backup e un'operazione di backup a lunga esecuzione per monitorare l'avanzamento del backup. Il backup appena creato risiede nell'istanza, nella stessa regione e nello stesso progetto del database di origine.

Per garantire la coerenza esterna del backup, Spanner blocca i contenuti del database in create_time. Ciò impedisce al sistema di garbage collection di rimuovere i valori dei dati pertinenti per la durata dell'operazione di backup. Poi, ogni zona di lettura-scrittura e sola lettura nell'istanza inizia a copiare i dati in parallelo. Se una zona non è al momento disponibile, il backup non viene completato finché la zona non torna online e termina. I backup possono essere ripristinati al termine dell'operazione. Per le istanze multiregionali, tutte le zone di lettura/scrittura e di sola lettura in tutte le regioni devono completare le rispettive repliche di backup prima che il backup sia contrassegnato come ripristinabile.

I backup includono anche lo schema dei modifiche in tempo reale di un database, ma non dei record delle modifiche esistenti. I dati delle modifiche in tempo reale devono essere trasmessi in streaming e consumati quasi contemporaneamente alle modifiche che descrivono. Di conseguenza, Spanner esclude questi dati dai backup.

Come funziona la copia di backup

Il backup e il ripristino di Spanner ti consente di copiare un backup del tuo database Spanner da un'istanza all'altra in una regione o un progetto diverso, per fornire ulteriori funzionalità di protezione e conformità dei dati. Il backup copiato ha le stesse funzionalità principali del backup originale. Inoltre, puoi ripristinare un backup copiato nella stessa istanza di quello copiato per supportare il backup e il ripristino tra regioni e tra progetti.

Casi d'uso comuni tra regioni

Alcuni casi d'uso comuni per la copia di un backup in più regioni sono:

  • Mantieni un backup in un'altra regione per soddisfare i requisiti di conformità e normativi.

    Ad esempio, per soddisfare i requisiti di conformità, puoi copiare un backup del tuo database in un'istanza in una regione che si trova a una distanza minima dai dati di produzione.

  • Mantieni un backup in una regione separata per il ripristino di emergenza e la continuità aziendale.

    Ad esempio, puoi copiare un database di backup in un'istanza di destinazione per scopi di ripristino di emergenza con RTO (Recovery Time Objective) e RPO (Recovery Point Objective) diversi da zero. Quindi, quando necessario, puoi ripristinare il database dal backup copiato nell'istanza di destinazione. Se la tua applicazione ha requisiti zero-RTO e zero-RPO, ti consigliamo di utilizzare le configurazioni per più regioni di Spanner per i tuoi piani di ripristino di emergenza.

Casi d'uso comuni tra progetti

Ecco alcuni casi d'uso comuni tra progetti per la copia di un backup:

  • Mantieni una copia di backup in un progetto separato per soddisfare i requisiti operativi, di sicurezza o di conformità.
  • Copia e sposta i dati tra progetti di sviluppo, test e produzione.

    Ad esempio, se vuoi spostare i dati dal progetto di produzione a un progetto di test, puoi creare un backup dei dati di produzione e poi copiarlo nel progetto di test. Una volta completata l'operazione di copia, puoi ripristinare il backup copiato in un'istanza nel progetto di test.

  • Sposta il database da un progetto a un altro (tieni presente che potrebbero verificarsi tempi di inattività durante la migrazione).

Puoi copiare un backup in un'istanza di destinazione in una regione o un progetto diverso specificando un backup di origine, un backup di destinazione e una data di scadenza fino a un anno dalla data di creazione del backup di origine. Ciò significa che il valore di expiration_date deve essere di almeno sei ore dal momento dell'elaborazione della richiesta di copia corrente e al massimo 366 giorni dopo il backup dell'origine create_time.

All'inizio della richiesta di backup della copia, Spanner crea una risorsa di backup e un'operazione di backup a lunga esecuzione per monitorare l'avanzamento del backup. Il backup viene copiato in ogni zona di lettura/scrittura e sola lettura dell'istanza di destinazione. Se una zona non è al momento disponibile, la copia di backup non viene completata finché la zona non torna online. Non puoi eliminare l'istanza di destinazione durante la copia. Per monitorare lo stato di avanzamento e completamento dell'operazione di copia di backup, segui i passaggi descritti in Mostrare l'avanzamento del backup. Al termine della copia, puoi eliminare il backup di origine se non ti serve più. Al termine della copia, puoi utilizzare operazioni come GetBackup, UpdateBackup e DeleteBackup con il backup copiato.

Prerequisiti per avviare la copia di un backup

Se stai copiando un backup in un'istanza in una regione o un progetto diverso, devi prima impostare e configurare l'istanza di destinazione. L'istanza di destinazione è l'istanza in cui si trova la copia del backup. Può contenere fino a 100 unità di elaborazione e non è necessario avere la stessa configurazione dell'istanza di origine (l'istanza in cui si trova il backup di origine). Prima del ripristino, assicurati che nell'istanza di destinazione sia stato eseguito il provisioning di un numero di nodi o unità di elaborazione sufficiente a supportare la dimensione del database in base al limite di archiviazione di 4 TB per nodo (ad es. sono necessari almeno 2 nodi per ripristinare un backup di 8 TB). Per creare una nuova istanza di destinazione, consulta Creare e gestire le istanze.

Ulteriori considerazioni

Ulteriori considerazioni includono:

  • Quando copi un backup da un'istanza di origine a un'istanza di destinazione, il backup copiato esiste indipendentemente dal backup di origine. Una volta completata l'operazione di copia, sarà presente un backup nell'istanza di origine e un backup nell'istanza di destinazione. Se il backup non è più necessario nell'istanza di origine, puoi eliminarlo.
  • Quando copi un backup in un'istanza a livello di regione, i dati di backup vengono copiati in ciascuna delle tre zone di lettura e scrittura nell'istanza di destinazione.
  • Quando copi un backup in un'istanza in più regioni, i dati di backup vengono copiati in ogni zona dell'istanza che contiene una replica di lettura e scrittura o di sola lettura.
  • Puoi copiare più backup contemporaneamente.
  • Puoi aggiornare o eliminare il backup di destinazione mentre è ancora in corso un processo di copia. Se elimini il backup di destinazione, l'operazione di copia in corso verrà annullata di conseguenza.
  • Puoi ripristinare un backup nell'istanza di origine mentre è in corso un'operazione di copia.
  • Puoi annullare un'operazione di copia prima che venga completata.

Durante il processo di copia non sono consentite le seguenti operazioni:

  • Non puoi eliminare il backup di origine mentre è in corso un'operazione di copia.
  • Non puoi avviare una nuova copia o un ripristino nel backup copiato di destinazione mentre la copia è ancora in corso. Una volta completata, la copia può essere copiata o ripristinata.

Dove vengono archiviati i backup di Spanner

I backup sono risorse in Spanner. Ogni risorsa di backup è organizzata nella stessa istanza del suo database di origine nella gerarchia delle risorse e ha un percorso della risorsa nel formato projects/<project>/instances/<instance>/backups/<backup>. Un backup continua a esistere anche dopo l'eliminazione del database di origine, ma non può superare la relativa istanza padre. Per impedire l'eliminazione accidentale dei backup, non puoi eliminare un'istanza Spanner se sono presenti backup. Se vuoi eliminare l'istanza, ti consigliamo di ripristinare il backup e poi esportare il database ripristinato prima di eliminare il backup e l'istanza.

Crittografia

I backup di Spanner, come i database, sono criptati mediante crittografia gestita da Google o gestita dal cliente. Per impostazione predefinita, un backup utilizza la stessa configurazione di crittografia del database, ma puoi ignorare questo comportamento specificando una configurazione di crittografia diversa quando crei il backup. Se il backup è abilitato per CMEK, viene criptato utilizzando la versione primaria della chiave KMS al momento della creazione del backup. Una volta creato il backup, la relativa chiave e versione della chiave non possono essere modificate, anche se la chiave KMS viene ruotata. Per ulteriori informazioni, vedi Creare un backup abilitato per CMEK.

Per impostazione predefinita, un backup copiato utilizza la stessa configurazione di crittografia, gestita da Google o gestita dal cliente (CMEK), come 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 KMS corrispondente alla regione di destinazione.

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 ridimensiona questo job in base alle dimensioni del database. Questo job di backup non utilizza le risorse della CPU allocate all'istanza del database, perciò 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, vedi Mostrare l'avanzamento del backup.

In genere, la maggior parte dei backup richiede da 1 a 4 ore. Alcuni backup potrebbero richiedere più tempo a causa delle loro dimensioni o della presenza di un'accodamento interno per le risorse. Se un backup sta richiedendo più tempo del solito quando non sono stati modificati altri fattori, potrebbe essere dovuto a 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 si verifichi lo stesso ritardo di pianificazione 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 influisce sulle prestazioni dell'istanza o del database di origine. Puoi creare più copie simultanee del backup di origine nelle istanze in regioni diverse senza problemi di prestazioni.

Prezzi

I costi vengono addebitati in base alla quantità di spazio di archiviazione utilizzato dai backup per unità di tempo. La fatturazione inizia una volta completata l'operazione di backup e continuerà fino a quando il backup non sarà stato eliminato. Un backup completato viene fatturato per un minimo di 24 ore. Se crei un backup e lo elimini un minuto dopo il suo completamento, ti verranno comunque addebitate 24 ore.

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

Ad esempio, se copi il database dalla configurazione dell'istanza multiregionale di origine nam7 alla configurazione dell'istanza multiregionale di destinazione nam-eur-asia3, si applicano i seguenti costi:

  • Nessun costo per la sovrapposizione di us-central1 regione
  • Nessun costo per la regione di testimonianza di us-central2
  • Il costo per il trasferimento di dati intercontinentale viene applicato due volte: una per ogni nuovo continente (Europa e Asia)
  • Il costo per trasferimento di dati tra regioni all'interno dello stesso continente viene applicato una sola volta per us-east1
  • L'addebito per il trasferimento di dati tra regioni all'interno dello stesso continente si applica una sola volta in Europa.

Spanner ottimizza il processo di copia per ridurre al minimo il numero di trasferimenti tra regioni. Ciò consente di ridurre al minimo i costi di trasferimento dati e di offrire un'esperienza di backup della copia rapida.

I backup vengono archiviati e fatturati separatamente. L'archiviazione dei backup non influisce sulla fatturazione per l'archiviazione dei database o sui limiti di archiviazione del database. Per maggiori informazioni, vedi anche Metriche di utilizzo dello spazio di archiviazione.

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

Passaggi successivi