Puoi ripristinare un backup di un database Spanner in un nuovo database. Il database ripristinato conterrà tutti i dati e lo schema del database originale al momento del version_time del backup, incluse tutte le opzioni del database impostate con il comando ALTER DATABASE SET OPTIONS. Tuttavia, i seguenti elementi non sono inclusi nel database ripristinato:
- Autorizzazioni Identity and Access Management (IAM), ad eccezione di quelle ereditate dall'istanza contenente il database ripristinato. Dopo il completamento del ripristino, devi applicare le autorizzazioni IAM appropriate.
- Dati interni di tutti i flussi di modifiche in tempo reale.
- Durata (TTL) definita da una politica di cancellazione delle righe. Devi riconfigurare queste norme al termine del ripristino. Per saperne di più, consulta Backup e TTL.
- Punti di suddivisione creati durante la suddivisione preliminare di un database. Per saperne di più, consulta la panoramica della pre-suddivisione.
Se devi eseguire il ripristino da un backup in una regione o un progetto diverso per motivi di conformità o continuità operativa, puoi copiare il backup in un'istanza in una regione o un progetto separato, quindi eseguire il ripristino dal backup copiato.
Puoi utilizzare il ripristino da un backup nei seguenti modi:
- Nella Google Cloud console
- Utilizzo di Google Cloud CLI
- Utilizzo delle librerie client
- Utilizzo delle API REST o RPC
Come funziona il ripristino del database da un backup
Quando ripristini un database Spanner, devi specificare un backup di origine e un nuovo database di destinazione. Non puoi eseguire il ripristino in un database esistente. Il database appena ripristinato deve trovarsi nello stesso progetto del backup e in un'istanza con la stessa configurazione dell'istanza e la stessa (o di livello superiore) edizione Spanner del backup. Per ripristinare un backup in un'istanza con una configurazione dell'istanza diversa o in un progetto diverso, puoi prima copiare il backup nel progetto o nella regione di destinazione.
Ad esempio, se un backup si trova in un'istanza
configurata us-west3 e utilizza Enterprise Edition, può essere
ripristinato in qualsiasi istanza del progetto configurata anch'essa us-west3 e
che utilizza Enterprise Edition. Tuttavia, per ripristinare questo backup in un'istanza configurata us-east1 o in un'istanza di un altro progetto, devi prima copiare il backup in un'istanza nella regione o nel progetto di destinazione e poi eseguire il ripristino dal backup copiato. Se ripristini un backup in un'istanza Enterprise edition in un'istanza Standard edition, il ripristino potrebbe non riuscire se il database utilizza funzionalità di Enterprise edition. La capacità di calcolo delle
istanze non deve essere la stessa.
La procedura di ripristino è progettata per l'alta disponibilità. Puoi ripristinare il database a condizione che sia disponibile la maggior parte del quorum di regioni e zone nell'istanza di destinazione.
Per ripristinare un backup abilitato per CMEK, sia la chiave che la versione della chiave devono essere disponibili per Spanner. Per impostazione predefinita, il database ripristinato utilizza le stesse configurazioni di crittografia del backup. Puoi sostituire questo comportamento specificando una configurazione di crittografia diversa durante il ripristino del database. Per ulteriori informazioni, consulta Ripristinare da un backup abilitato per CMEK.
Non puoi ripristinare un backup che utilizza funzionalità di una versione di livello superiore in una versione di livello inferiore. Ad esempio, se la tua istanza utilizza il partizionamento geografico, non puoi ripristinarla alla versione Enterprise o Standard.
Ripristinare un backup in un'altra regione o un altro progetto
Se devi ripristinare il backup in un'altra regione o in un altro progetto, prima copia il backup nella regione o nel progetto scelto. Puoi ripristinare il backup copiato non appena la copia viene completata. Prima del ripristino, assicurati che l'istanza di destinazione abbia un numero sufficiente di nodi o unità di elaborazione di cui è stato eseguito il provisioning per supportare le dimensioni del database in base al limite di archiviazione di 10 TB per nodo. Ad esempio, sono necessari almeno 2 nodi per ripristinare un backup di 20 TB. Se hai copiato il backup in un altro progetto e vuoi ripristinarlo lì, assicurati che il progetto di destinazione disponga di quote di nodi sufficienti per il ripristino. Il ripristino di un backup copiato funziona allo stesso modo di un ripristino normale.
Stati di ripristino
Un database ripristinato passa attraverso tre stati, monitorati da due operazioni a lunga esecuzione.
CREATING: Spanner inizia il ripristino creando un nuovo database e montando i file dal backup. Durante questo stato inizialeCREATING, il database ripristinato non è ancora pronto per l'uso. Questo stato in genere viene completato entro un'ora. Una volta completato lo statoCREATING, il tuo database è pronto per l'uso.Per monitorare l'avanzamento di questo stato, puoi eseguire query sull'operazione di ripristino a lunga esecuzione che Spanner rende disponibile durante questa procedura. Restituisce un oggetto
RestoreDatabaseMetadata.Tieni presente i seguenti avvisi relativi allo stato
CREATING:- Se esegui il ripristino in un'istanza diversa, l'operazione di ripristino appartiene all'istanza contenente il database ripristinato, non all'istanza contenente il backup.
- Spanner non ti consentirà di eliminare il backup mentre è in corso il ripristino. Puoi eliminarlo al termine del ripristino e quando il database entra nello stato
READY. - Un'istanza può avere al massimo dieci database nello stato
CREATINGa causa del ripristino dai backup. Non potrai ripristinare un altro backup nell'istanza finché uno dei dieci database ripristinati non passa allo statoREADY_OPTIMIZINGoREADY.
READY_OPTIMIZING: dopo aver montato il backup, Spanner inizia a copiare i dati di backup nel nuovo database ottimizzando le dimensioni archiviate. Il database è pronto per l'uso durante questa procedura. Il completamento di questa fase del ripristino richiede in genere alcune ore per i database di dimensioni inferiori a 100 TB.Anche se puoi utilizzare il database come di consueto durante
READY_OPTIMIZING, si applicano le seguenti avvertenze:- Le latenze di lettura potrebbero essere leggermente superiori al solito.
- Le metriche di archiviazione mostrano le dimensioni del nuovo database, non del backup. Pertanto, con il trasferimento dei dati ancora in corso, le metriche di archiviazione di Spanner potrebbero mostrare risultati che non riflettono la dimensione totale di tutti i tuoi dati.
- Come per lo stato
CREATING, Spanner non ti consentirà di eliminare il backup montato.
Spanner rende disponibile un'altra operazione di ripristino a lunga esecuzione durante questo stato, questa volta restituendo un oggetto metadati
OptimizeRestoredDatabaseMetadata.READY: Al termine dell'operazione di copia e ottimizzazione, il database passa allo statoREADY. Il database viene ripristinato completamente e non fa più riferimento al backup né lo richiede.
Controllo degli accessi (IAM)
Il ruolo spanner.restoreAdmin ti concede l'autorizzazione per eseguire il ripristino da un backup.
Per saperne di più, consulta Controllo dell'accesso con IAM.
Anche i seguenti ruoli hanno accesso alle operazioni di ripristino di Spanner:
spanner.admin: ha accesso completo al ripristino. Questo ruolo ha accesso completo a tutte le risorse Spanner.owner: ha accesso completo al ripristino.editor: ha accesso completo al ripristino.viewer: ha accesso alla visualizzazione delle operazioni di ripristino e ripristino. Questo ruolo non può creare, aggiornare, eliminare o copiare un backup.
Prezzi
Il ripristino da un backup non comporta alcun costo.
Passaggi successivi
- Per ripristinare un database da un backup, consulta Ripristino da un backup.