Cette page décrit les opérations de sauvegarde Spanner et explique comment sauvegarder une base de données. Pour en savoir plus sur les sauvegardes, consultez la section Présentation des sauvegardes.
Vous pouvez sauvegarder des bases de données à l'aide des éléments suivants:
Avant de commencer
Les exemples de gcloud CLI de cette page reposent sur les hypothèses suivantes:
- Vous avez déjà configuré la gcloud CLI pour l'utiliser avec Spanner. Si vous débutez avec gcloud CLI avec Spanner, consultez la page Premiers pas avec Spanner à l'aide de gcloud CLI.
Vous avez configuré la gcloud CLI avec votre projet. Exemple :
gcloud config set core/project PROJECT_ID
Vous disposez d'une instance nommée
test-instance
et d'une base de données nomméeexample-db
.
-
Pour obtenir les autorisations nécessaires pour créer et gérer des sauvegardes, demandez à votre administrateur de vous attribuer les rôles IAM suivants sur l'instance:
-
Créer, afficher, mettre à jour et supprimer des sauvegardes :
Administrateur de sauvegardes Cloud Spanner (
roles/spanner.backupAdmin
) -
Créer et afficher des sauvegardes :
Rédacteur de sauvegardes Cloud Spanner (
roles/spanner.backupWriter
)
-
Créer, afficher, mettre à jour et supprimer des sauvegardes :
Administrateur de sauvegardes Cloud Spanner (
Créer une sauvegarde
Console
Dans la console Google Cloud, accédez à la page Instances de Spanner.
Cliquez sur l'instance contenant la base de données que vous souhaitez sauvegarder.
Cliquez sur la base de données.
Dans le volet de navigation, cliquez sur Sauvegarder/Restaurer.
Dans l'onglet Sauvegardes, cliquez sur Créer une sauvegarde.
Remplissez le formulaire, puis cliquez sur Créer.
Pour vérifier la progression d'une opération de sauvegarde, consultez la section Vérifier la progression de l'opération.
gcloud
Pour créer une sauvegarde nommée example-db-backup-6
et la faire expirer au bout d'un an, utilisez gcloud spanner backups create
:
gcloud spanner backups create example-db-backup-6 --instance=test-instance \
--database=example-db --retention-period=1y --async
Voici quelques remarques d'utilisation :
- Pour définir la date d'expiration de la sauvegarde, spécifiez l'option
--retention-period
ou--expiration-date
. Pour en savoir plus sur la syntaxe des dates, consultezgcloud topic datetimes
. - Le nom de la sauvegarde doit être unique dans l'instance.
- 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 sauvegarde. - Spécifiez l'option
--help
pour obtenir de l'aide pour n'importe quelle commande.
Le résultat ressemble à ceci :
Create request issued for: [example-db-backup-6]
Check operation [projects/my-project/instances/test-instance/backups/example-db-backup-6/operations/_auto_op_234567] for status.
Pour vérifier la progression d'une opération de sauvegarde, consultez la section Vérifier la progression de l'opération.
Bibliothèques clientes
L'exemple de code suivant crée une sauvegarde à un version_time
spécifique, puis attend qu'elle se termine. Une fois l'opération terminée, il vérifie que la sauvegarde est prête et récupère certaines informations la concernant, telles que son nom, sa taille et la date de création.
C++
C#
Go
Java
Node.js
PHP
Python
Ruby
Copier une sauvegarde
Console
Dans la console Google Cloud, accédez à la page Instances de Spanner.
Cliquez sur l'instance contenant la base de données que vous souhaitez copier.
Cliquez sur la base de données.
Dans le volet de navigation, cliquez sur Sauvegarder/Restaurer.
Dans le tableau Sauvegardes, sélectionnez Actions pour votre sauvegarde, puis cliquez sur Copier.
Remplissez le formulaire en choisissant une instance de destination, en indiquant un nom et en sélectionnant une date d'expiration pour la copie de sauvegarde.
Cliquez sur Copier.
Pour vérifier la progression d'une opération de copie, consultez la section Vérifier la progression de l'opération.
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 copier une sauvegarde vers une autre instance du même projet, utilisez gcloud spanner backups copy
:
gcloud spanner backups copy \
--source-instance=test-instance \
--source-backup=example-db \
--destination-instance=backup-instance \
--destination-backup=copied-backup \
--expiration-date=2022-03-30T10:49:41Z
Pour copier une sauvegarde vers une autre instance d'un autre projet:
gcloud spanner backups copy \
--source-backup=projects/my-project/instances/test-instance/backups/example-db \
--destination-backup=projects/backup-project/instances/backup-instance-eu/backups/copied-backup \
--expiration-date=2022-03-30T10:49:41Z
Remarques sur l'utilisation :
- Si vous choisissez de copier la sauvegarde vers une autre instance du même projet, vous devez créer une instance (ou en avoir une à portée de main) pour la sauvegarde copiée.
Dans l'exemple précédent,
backup-instance
est utilisé. Vous ne pouvez pas créer d'instance dans le cadre de l'opération de copie de sauvegarde. - Si vous choisissez de copier la sauvegarde dans un autre projet, vous devez disposer d'un autre projet avec sa propre instance prête pour la copie de la sauvegarde. Dans l'exemple précédent,
backup-project
est utilisé. Vous ne pouvez pas créer de projet dans le cadre de l'opération de copie de sauvegarde. - Le délai d'expiration de la sauvegarde doit être d'au moins six heures à compter du traitement de la requête de copie en cours et de 366 jours au maximum après l'
create_time
de sauvegarde source.
Le résultat ressemble à ceci :
createTime: '2022-03-29T22:06:05.905823Z'
database: projects/my-project/instances/test-instance/databases/example-db
databaseDialect: GOOGLE_STANDARD_SQL
encryptionInfo:
encryptionType: GOOGLE_DEFAULT_ENCRYPTION
expireTime: '2022-03-30T10:49:41Z'
maxExpireTime: '2023-03-17T20:46:33.479336Z'
name: projects/backup-project/instances/backup-instance-eu/backups/copied-backup
sizeBytes: '7957667'
state: READY
versionTime: '2022-03-16T20:46:33.479336Z'
Pour vérifier la progression d'une opération de copie, consultez la section Vérifier la progression de l'opération.
Bibliothèques clientes
L'exemple de code suivant copie une sauvegarde existante. Vous pouvez copier la sauvegarde dans une instance d'une autre région ou d'un autre projet. Une fois terminé, l'exemple récupère et imprime certaines informations sur la sauvegarde copiée qui vient d'être créée, telles que son nom, sa taille, son état de sauvegarde et version_time
.
C++
C#
Go
Java
Node.js
PHP
Python
Ruby
Vérifier la progression de l'opération
Console
Dans la console Google Cloud, accédez à la page Instances de Spanner.
Cliquez sur l'instance contenant la base de données pour laquelle vous souhaitez afficher l'opération de sauvegarde.
Cliquez sur la base de données.
Dans le volet de navigation, cliquez sur Opérations. La page Opérations affiche la liste des opérations en cours d'exécution.
gcloud
Utilisez gcloud spanner operations describe
pour vérifier la progression d'une opération.
Obtenez l'ID d'opération:
gcloud spanner operations list --instance=INSTANCE_NAME \ --database=DATABASE_NAME --type=BACKUP
Remplacez les éléments suivants :
- INSTANCE_NAME par le nom de l'instance Spanner.
- DATABASE_NAME par le nom de la base de données.
Remarques sur l'utilisation :
Pour limiter la liste, spécifiez l'option
--filter
. Exemple :--filter="metadata.name:example-db"
ne répertorie que les opérations sur une base de données spécifique.--filter="error:*"
ne répertorie que les opérations de sauvegarde qui ont échoué.
Pour en savoir plus sur la syntaxe des filtres, consultez
gcloud topic filters
. Pour en savoir plus sur le filtrage des opérations de sauvegarde, consultez le champfilter
dansListBackupOperationsRequest
.L'option
--type
n'est pas sensible à la casse.
Le résultat ressemble à ceci :
OPERATION_ID DONE @TYPE BACKUP SOURCE_DATABASE START_TIME END_TIME _auto_op_123456 True CreateBackupMetadata example-db-backup-7 example-db 2020-02-04T02:12:38.075515Z 2020-02-04T02:22:40.581170Z _auto_op_234567 True CreateBackupMetadata example-db-backup-6 example-db 2020-02-04T02:05:43.920377Z 2020-02-04T02:07:59.089820Z
Exécutez
gcloud spanner operations describe
:gcloud spanner operations describe OPERATION_ID \ --instance=INSTANCE_NAME \ --backup=BACKUP_NAME \
Remplacez les éléments suivants :
- OPERATION_ID: ID de l'opération que vous souhaitez vérifier.
- INSTANCE_NAME: nom de l'instance Spanner.
- BACKUP_NAME: nom de la sauvegarde Spanner.
La section
progress
du résultat indique le pourcentage d'achèvement de l'opération. Le résultat ressemble à ceci :done: true metadata: ... progress: - endTime: '2022-03-01T00:28:06.691403Z' progressPercent: 100 startTime: '2022-03-01T00:28:04.221401Z' - endTime: '2022-03-01T00:28:17.624588Z' startTime: '2022-03-01T00:28:06.691403Z' progressPercent: 100 ...
Si l'opération prend trop de temps, vous pouvez l'annuler. Pour en savoir plus, consultez la section Annuler une opération de sauvegarde de longue durée.
Bibliothèques clientes
L'exemple de code suivant répertorie toutes les opérations en cours de création de sauvegardes (opérations avec CreateBackupMetadata
) et de copie de sauvegardes (opérations avec CopyBackupMetadata
) filtrées par une base de données donnée.
Pour en savoir plus sur la syntaxe de filtrage, consultez le paramètre filter
dans backupOperations.list
.
C++
C#
Pour répertorier toutes les opérations de création de sauvegarde:
Pour répertorier toutes les opérations de copie de sauvegarde:
Go
Java
Node.js
PHP
Python
Ruby
Pour répertorier toutes les opérations de création de sauvegarde:
Pour répertorier toutes les opérations de copie de sauvegarde:
Annuler une opération de sauvegarde
Console
La console Google Cloud ne permet pas d'annuler une opération de sauvegarde. Toutefois, vous pouvez annuler les opérations qui prennent trop de temps à l'aide de Google Cloud CLI, REST ou RPC. Pour en savoir plus, consultez la section Annuler une opération d'instance de longue durée.
gcloud
Utilisez gcloud spanner operations cancel
pour annuler une opération de sauvegarde.
gcloud spanner operations cancel OPERATION_ID --instance=INSTANCE_NAME \ --database=DATABASE_NAME --backup=BACKUP
Remplacez les éléments suivants :
- OPERATION_ID par l'ID d'opération de la sauvegarde.
- INSTANCE_NAME par le nom de l'instance Spanner.
- DATABASE_NAME par le nom de la base de données.
- BACKUP par le nom de la sauvegarde ;
Bibliothèques clientes
L'exemple de code suivant crée une sauvegarde, annule l'opération de sauvegarde, puis attend que l'opération de sauvegarde ait l'état done
. Si l'opération a bien été annulée, le cancelTime
et un message d'erreur sont renvoyés. Si l'opération de sauvegarde s'est terminée avant d'être annulée, la sauvegarde existe et vous pouvez la supprimer.
C++
C#
Go
Java
Node.js
PHP
Python
Ruby
Obtenir des informations sur la sauvegarde
Console
Dans la console Google Cloud, accédez à la page Instances de Spanner.
Cliquez sur l'instance contenant la base de données pour laquelle vous souhaitez afficher les informations de sauvegarde.
Cliquez sur la base de données pour ouvrir la page Présentation correspondante.
Dans le volet de navigation, cliquez sur Sauvegarder/Restaurer. Vous pouvez afficher les informations de sauvegarde de la sauvegarde sélectionnée dans la base de données.
gcloud
Pour obtenir des informations sur une sauvegarde, utilisez gcloud spanner backups describe
:
gcloud spanner backups describe example-db-backup-6 --instance=test-instance
Le résultat ressemble à ceci :
createTime: '2020-02-04T02:05:43.920377Z'
database: projects/my-project/instances/test-instance/databases/example-db
expireTime: '2021-02-04T02:05:43.268327Z'
name: projects/my-project/instances/test-instance/backups/example-db-backup-6
sizeBytes: '1000000000'
state: READY
Bibliothèques clientes
Les bibliothèques clientes ne permettent pas d'obtenir des informations de sauvegarde pour une seule sauvegarde. Cependant, vous pouvez répertorier toutes les sauvegardes et leurs informations dans une instance. Pour en savoir plus, consultez la section Répertorier les sauvegardes d'une instance.
Répertorier les sauvegardes d'une instance
Console
Dans la console Google Cloud, accédez à la page Instances de Spanner.
Cliquez sur votre instance pour afficher toutes les sauvegardes disponibles et leurs informations.
Dans le volet de navigation, cliquez sur Sauvegarder/Restaurer.
gcloud
Pour répertorier toutes les sauvegardes d'une instance, utilisez gcloud spanner backups list
:
gcloud spanner backups list --instance=test-instance
Le résultat ressemble à ceci :
BACKUP SOURCE_DATABASE CREATION_TIME EXPIRATION_TIME STATE BACKUP_SIZE_IN_BYTES IN_USE_BY
example-db-backup-6 example-db 2020-02-04T02:05:43.920377Z 2021-02-04T02:05:43.268327Z CREATING
example-db-backup-4 example-db 2020-02-04T01:21:20.873839Z 2021-02-04T01:21:20.530151Z READY 32
example-db-backup-3 example-db 2020-02-03T23:59:18.936433Z 2021-02-03T23:59:18.203083Z READY 32
example-db-backup-5 example-db 2020-02-03T23:48:06.259296Z 2021-02-03T23:48:05.830937Z READY 32
example-db-backup-2 example-db 2020-01-30T19:49:00.616338Z 2021-01-30T19:49:00.283917Z READY 32
example-db-backup-1 example-db 2020-01-30T19:47:09.492551Z 2021-01-30T19:47:09.097804Z READY 32
Pour limiter la liste, spécifiez l'option --filter
. Par exemple, pour filtrer la liste afin de n'inclure que les sauvegardes en cours de création, ajoutez --filter="state:creating"
. Pour en savoir plus sur la syntaxe des filtres, consultez gcloud topic filters
.
Pour en savoir plus sur le filtrage des sauvegardes, consultez le champ filter
dans ListBackupsRequest
.
Bibliothèques clientes
L'exemple de code suivant répertorie les sauvegardes d'une instance donnée.
Vous pouvez filtrer la liste des sauvegardes renvoyées (par exemple, en filtrant par nom, date de version ou délai d'expiration des sauvegardes) en fournissant une expression de filtre. Pour en savoir plus sur la syntaxe de filtrage, consultez la section concernant le paramètre filter
sur la page Répertorier les sauvegardes.
C++
C#
Go
Java
Node.js
PHP
Python
Ruby
Mettre à jour le délai d'expiration de la sauvegarde
Console
Accédez à la page "Instances Spanner" dans la console Google Cloud.
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 Sauvegarder/Restaurer.
Cliquez sur le bouton Actions de la sauvegarde sélectionnée, puis sélectionnez Mettre à jour les métadonnées.
Sélectionnez la nouvelle date d'expiration.
Cliquez sur Update (Mettre à jour).
gcloud
Pour mettre à jour la date d'expiration d'une sauvegarde, utilisez gcloud spanner backups update-metadata
:
gcloud spanner backups update-metadata example-db-backup-6 \
--instance=test-instance --expiration-date=2020-05-05T00:00:00Z
Le résultat ressemble à ceci :
createTime: '2020-02-04T02:05:43.920377Z'
database: projects/my-project/instances/test-instance/databases/example-db
expireTime: '2020-05-05T00:00:00Z'
name: projects/my-project/instances/test-instance/backups/example-db-backup-6
sizeBytes: '1000000000'
state: READY
Bibliothèques clientes
L'exemple de code suivant récupère le délai d'expiration d'une sauvegarde et l'étend.
C++
C#
Go
Java
Node.js
PHP
Python
Ruby
Supprimer une sauvegarde
Console
Accédez à la page "Instances Spanner" dans la console Google Cloud.
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 Sauvegarder/Restaurer.
Cliquez sur le bouton Actions de la sauvegarde sélectionnée, puis sélectionnez Delete (Supprimer).
Saisissez l'ID de la sauvegarde.
Cliquez sur Supprimer.
gcloud
Pour supprimer une sauvegarde, utilisez gcloud spanner backups delete
:
gcloud spanner backups delete example-db-backup-1 --instance=test-instance
Vous devez confirmer l'opération :
You are about to delete backup [example-db-backup-1]
Do you want to continue (Y/n)? Y
Deleted backup [example-db-backup-1].
Bibliothèques clientes
L'exemple de code suivant supprime une sauvegarde et s'assure qu'elle a été supprimée. La suppression d'une sauvegarde en cours supprime la ressource de sauvegarde et annule l'opération de sauvegarde de longue durée.
C++
C#
Go
Java
Node.js
PHP
Python
Ruby