Questa pagina descrive le operazioni di ripristino di Spanner e spiega come ripristinare un database. Per saperne di più sul ripristino del database in Spanner, consulta la panoramica del ripristino.
Puoi ripristinare il backup nell'istanza di destinazione se utilizza la stessa versione o una versione di livello superiore dell'edizione dell'istanza di backup di origine. In alternativa, puoi ripristinarlo in qualsiasi istanza con la stessa configurazione dell'istanza e una versione uguale o di livello superiore rispetto all'istanza di origine.
Puoi ripristinare un database Spanner utilizzando:
- Nella Google Cloud console.
- Utilizzando Google Cloud CLI.
- Utilizzando le librerie client.
- Utilizzando le REST o RPC API.
Prima di iniziare
Gli esempi di gcloud CLI in questa pagina presuppongono quanto segue:
- Hai già configurato gcloud CLI per l'utilizzo con Spanner. Se non hai mai utilizzato gcloud CLI con Spanner, consulta la pagina Introduzione a Spanner utilizzando gcloud CLI.
- Hai configurato gcloud CLI con il tuo progetto. Ad esempio:
gcloud config set core/project PROJECT_ID
* You have an instance named `test-instance` and a database named `example-db`.-
Per ottenere le autorizzazioni necessarie per ripristinare un database da un backup, chiedi all'amministratore di concederti i seguenti ruoli IAM nell'istanza:
-
Tutti:
Amministratore del ripristino di Cloud Spanner (
roles/spanner.restoreAdmin)
-
Tutti:
Amministratore del ripristino di Cloud Spanner (
Ripristinare un database da un backup
Console
- Vai alla pagina Istanze Spanner nella Google Cloud console.
Vai alla pagina Istanze Spanner
Fai clic sull'istanza contenente il database per aprire la pagina Panoramica.
Fai clic sul database per aprire la pagina Panoramica.
Nel riquadro di navigazione, fai clic su Backup/Ripristino.
Fai clic sul pulsante Azioni per il backup selezionato, quindi seleziona Ripristina.
Seleziona un'istanza di destinazione compatibile e assegna un nome al nuovo database.
Fai clic sul pulsante Ripristina.
Per controllare lo stato di avanzamento dell'operazione, consulta l'indicatore di avanzamento, come mostrato nella pagina delle operazioni:
Se l'operazione richiede troppo tempo, puoi annullarla. Per saperne di più, consulta Annullare un'operazione di istanza a lunga esecuzione .
gcloud
Per ripristinare un database, utilizza gcloud spanner
databases restore:
gcloud spanner databases restore --async \
--destination-instance=test-instance --destination-database=example-db-restored \
--source-instance=test-instance --source-backup=example-db-backup-6 \
--encryption_type=google-managed-encryptionNote sull'utilizzo:
- Il comando viene restituito immediatamente a causa del flag
--async. Senza il flag, il comando attenderà il completamento dell'operazione di ripristino. - Se le istanze di origine e di destinazione sono diverse, devono avere la stessa configurazione dell'istanza.
- Se il database di destinazione esiste già, l'operazione non riuscirà.
- I valori possibili per
encryption_typesonoUSE_DATABASE_ENCRYPTION,GOOGLE_DEFAULT_ENCRYPTIONoCUSTOMER_MANAGED_ENCRYPTION. Se utilizziCUSTOMER_MANAGED_ENCRYPTION, devi specificare unkmsKeyName.
Librerie client
Il seguente esempio di codice ripristina un database da un
backup specificato e attende il completamento dell'operazione di ripristino (un'operazione con
RestoreDatabaseMetadata)
Il database ripristinato viene creato nella stessa istanza del backup. Al termine, l'esempio recupera e stampa alcune informazioni di ripristino dal database.
C++
C#
Vai
Java
Node.js
PHP
Python
Ruby
Recuperare una tabella specifica da un backup
Se devi recuperare una tabella specifica da un backup, puoi ripristinare il backup in un nuovo database, esportare la singola tabella dal nuovo database e poi importarla nel database originale. Questo approccio riduce al minimo il carico sul database originale durante il processo di esportazione.
- Ripristina il backup in un nuovo database separato.
(Facoltativo) Elimina le righe create dopo il timestamp di recupero.
Il processo di importazione non elimina automaticamente le righe aggiunte alla tabella dopo la creazione del backup. Pertanto, se vuoi che la tabella recuperata corrisponda esattamente allo stato del backup, devi eliminare manualmente le righe create dopo il timestamp del backup.
Esporta la tabella specifica dal nuovo database utilizzando il modello Dataflow da Spanner ad Avro. Per saperne di più, consulta Esportare un sottoinsieme di tabelle.
Importa la tabella esportata nel database originale utilizzando il modello Dataflow da Cloud Storage Avro a Spanner. Per saperne di più, consulta Importare dati.