Cette page décrit les opérations de restauration Spanner et explique comment restaurer une base de données. Pour en savoir plus sur la restauration de bases de données dans Spanner, consultez la page Présentation de la restauration.
Vous pouvez restaurer la sauvegarde dans l'instance de destination si elle utilise la même édition ou une édition de niveau supérieur que l'instance de sauvegarde source. Vous pouvez également la restaurer dans n'importe quelle instance ayant la même configuration d'instance et une édition de même niveau ou de niveau supérieur que l'instance source.
Vous pouvez restaurer une base de données Spanner à l'aide des éléments suivants :
- Dans la Google Cloud console.
- À l'aide de Google Cloud CLI
- À l'aide des bibliothèques clientes
- À l'aide des API REST ou RPC.
Avant de commencer
Les exemples de gcloud CLI présentés sur cette page partent des principes suivants :
- Vous avez déjà configuré gcloud CLI pour une utilisation avec Spanner. Si vous débutez avec Spanner sur gcloud CLI, consultez la page Premiers pas avec Spanner sur gcloud CLI.
- Vous avez configuré gcloud CLI avec votre projet. Exemple :
gcloud config set core/project PROJECT_ID
* You have an instance named `test-instance` and a database named `example-db`.-
Pour obtenir les autorisations nécessaires pour restaurer une base de données à partir d'une sauvegarde, demandez à votre administrateur de vous accorder les rôles IAM suivants sur l'instance :
-
Tous :
Administrateur de restaurations Cloud Spanner (
roles/spanner.restoreAdmin)
-
Tous :
Administrateur de restaurations Cloud Spanner (
Restaurer une base de données à partir d'une sauvegarde
Console
- Accédez à la page Instances de Spanner dans la consoleGoogle Cloud .
Accéder à la page "Instances Spanner"
Cliquez sur l'instance contenant la base de données pour ouvrir la page Présentation correspondante.
Cliquez sur la base de données pour ouvrir la page Présentation correspondante.
Dans le volet de navigation, cliquez sur Sauvegarde/Restauration.
Cliquez sur le bouton Actions de la sauvegarde sélectionnée, puis sélectionnez Restaurer.
Sélectionnez une instance de destination compatible et nommez votre nouvelle base de données.
Cliquez sur le bouton Restaurer.
Pour vérifier la progression de l'opération, consultez l'indicateur de progression, comme indiqué sur la page des opérations :
Si l'opération prend trop de temps, vous pouvez l'annuler. Pour en savoir plus, consultez la section Annuler une opération d'instance de longue durée .
gcloud
Pour restaurer une base de données, utilisez 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-encryptionRemarques concernant l'utilisation :
- La commande répond immédiatement en raison de l'option
--async. Sans l'option, la commande attend la fin de l'opération de restauration. - Si les instances source et de destination sont différentes, elles doivent avoir la même configuration d'instance.
- Si la base de données de destination existe déjà, l'opération échouera.
- Les valeurs possibles pour
encryption_typesontUSE_DATABASE_ENCRYPTION,GOOGLE_DEFAULT_ENCRYPTIONouCUSTOMER_MANAGED_ENCRYPTION. Si vous utilisezCUSTOMER_MANAGED_ENCRYPTION, vous devez spécifier unkmsKeyName.
Bibliothèques clientes
L'exemple de code suivant restaure une base de données à partir d'une
sauvegarde donnée et attend la fin de l'opération de restauration (opération avec
RestoreDatabaseMetadata)
complète. La base de données restaurée est créée dans la même instance que la sauvegarde. Une fois l'opération terminée, l'exemple extrait et imprime des informations de restauration à partir de la base de données.
C++
C#
Go
Java
Node.js
PHP
Python
Ruby
Récupérer une table spécifique à partir d'une sauvegarde
Si vous devez récupérer une table spécifique à partir d'une sauvegarde, vous pouvez restaurer la sauvegarde dans une nouvelle base de données, exporter cette table unique à partir de la nouvelle base de données, puis l'importer dans votre base de données d'origine. Cette approche minimise la charge sur la base de données d'origine pendant le processus d'exportation.
- Restaurez la sauvegarde dans une nouvelle base de données distincte.
(Facultatif) Supprimez les lignes créées après l'horodatage de récupération.
Le processus d'importation ne supprime pas automatiquement les lignes ajoutées à la table après la création de la sauvegarde. Par conséquent, si vous souhaitez que la table récupérée corresponde exactement à l'état de la sauvegarde, vous devez supprimer manuellement les lignes créées après l'horodatage de la sauvegarde.
Exportez la table spécifique à partir de la nouvelle base de données à l'aide du modèle Dataflow Spanner vers Avro. Pour en savoir plus, consultez la section Exporter un sous-ensemble de tables.
Importez la table exportée dans votre base de données d'origine à l'aide du modèle Dataflow Cloud Storage Avro vers Spanner. Pour en savoir plus, consultez la section Importer des données.