Cette page explique comment gérer le cycle de vie d'une opération de longue durée Cloud Spanner à l'aide d'API d'opérations.
Les opérations de longue durée sont des appels de méthodes dont l'exécution peut prendre un temps considérable. Spanner crée des opérations de longue durée pour plusieurs actions, bases de données et actions de sauvegarde. Considérez par exemple la méthode servant à restaurer une base de données, projects.instances.databases.restore
.
Lorsque vous restaurez une base de données, le service Spanner crée une opération de longue durée pour suivre la progression de la restauration.
Spanner fournit des API d'opérations qui vous permettent de vérifier l'état des opérations de longue durée. Vous pouvez également répertorier et annuler des opérations de longue durée, ainsi que supprimer les opérations de longue durée portant sur des instances.
Cette page explique comment gérer les opérations de longue durée avec l'API REST. Toutefois, vous pouvez également gérer les opérations de longue durée avec :
- Bibliothèques clientes Spanner
- Outil de ligne de commande
gcloud
- Page Spanner de la console Google Cloud
Gérez vos opérations de longue durée Spanner à l'aide des méthodes suivantes:
Action | Opérations de base de données de longue durée | Opérations de sauvegarde de longue durée | Opérations d'instance de longue durée |
---|---|---|---|
Annuler une opération de longue durée | cancel |
cancel |
cancel |
Supprimer une opération de longue durée | Non compatible | Non compatible | delete |
Obtenir l'état d'une opération de longue durée | get |
get |
get |
Répertorier les opérations de longue durée | list |
list |
list |
Opérations de base de données
Les opérations de longue durée relatives aux bases de données sont les suivantes :
projects.instances.databases.create
projects.instances.databases.restore
projects.instances.databases.updateDdl
projects.instances.databaseOperations.list
Obtenir l'état d'une opération de base de données de longue durée
La méthode projects.instances.databases.operations.get
permet d'obtenir l'état d'une opération de base de données de longue durée.
Voici un exemple de réponse renvoyée par projects.instances.databases.create
:
{
"name": "projects/[PROJECT_ID]/instances/test-instance/databases/example-db/operations/_auto_1492721321097206",
"metadata": {
"@type": "type.googleapis.com/google.spanner.admin.database.v1.CreateDatabaseMetadata",
"database": "projects/[PROJECT_ID]/instances/test-instance/databases/example-db"
}
}
La valeur name
en haut de la réponse montre que le service Spanner a créé une opération de base de données de longue durée nommée projects/[PROJECT_ID]/instances/test-instance/databases/example-db/operations/_auto_1492721321097206
.
Pour connaître l'état de cette opération de base de données de longue durée :
- Cliquez sur
projects.instances.databases.operations.get
. Pour le champ name, saisissez le nom de l'opération de base de données de longue durée, comme indiqué dans la réponse à la commande
projects.instances.databases.create
ouprojects.instances.databases.updateDdl
. Exemple :projects/[PROJECT_ID]/instances/test-instance/databases/example-db/operations/_auto_1492721321097206
(Remplacez cette valeur par le nom d'opération que vous avez reçu.) Pour extraire le nom de cette opération de base de données, vous pouvez également répertorier les opérations de base de données de longue durée.
Cliquez sur Exécuter et consultez la réponse. Lorsqu'une opération est terminée, le champ
done
est défini surtrue
.
Pour interroger une opération de base de données de longue durée, appelez la méthode projects.instances.databases.operations.get
de façon répétée jusqu'à ce que l'opération soit terminée. Utilisez un intervalle entre chaque tentative d'interrogation. Par exemple, effectuez une interrogation toutes les 10 secondes.
Répertorier les opérations de base de données de longue durée
La méthode projects.instances.databases.operations.list
vous permet de répertorier les opérations de base de données de longue durée.
- Cliquez sur
projects.instances.databases.operations.list
. Pour le champ name, saisissez la valeur suivante :
projects/[PROJECT_ID]/instances/test-instance/databases/example-db/operations
Cliquez sur Exécuter. La réponse contient la liste des opérations de base de données de longue durée.
Annuler une opération de base de données de longue durée
La méthode projects.instances.databases.operations.cancel
permet d'annuler une opération de base de données de longue durée.
- Cliquez sur
projects.instances.databases.operations.cancel
. Pour le champ name, saisissez le nom de l'opération de base de données de longue durée, comme indiqué dans la réponse à cette opération. Exemple :
projects/[PROJECT_ID]/instances/test-instance/databases/example-db/operations/_auto_1492721321097206
(Remplacez cette valeur par le nom d'opération que vous avez reçu.) Pour extraire le nom de cette opération de base de données, vous pouvez également répertorier les opérations de base de données de longue durée.
Cliquez sur Exécuter.
Opérations de sauvegarde
Les opérations de sauvegarde de longue durée sont les suivantes :
Obtenir l'état d'une opération de sauvegarde de longue durée
La méthode projects.instances.backups.operations.get
permet d'obtenir l'état d'une opération de longue durée portant sur une sauvegarde.
Voici un exemple de réponse renvoyée par projects.instances.backups.create
:
{
"name": "projects/[PROJECT_ID]/instances/test-instance/backups/example-db-backup-5/operations/_auto_1492721321097206",
"metadata": {
"@type": "type.googleapis.com/google.spanner.admin.database.v1.CreateBackupMetadata",
"name": "projects/[PROJECT_ID]/instances/test-instance/backup/example-db-backup-5"
}
}
La valeur name
en haut de la réponse montre que le service Spanner a créé une opération de sauvegarde de longue durée nommée projects/[PROJECT_ID]/instances/test-instance/backups/example-db/operations/_auto_op_0cf69250b487c2f7
.
Pour obtenir l'état de l'opération de sauvegarde de longue durée :
- Cliquez sur
projects.instances.backups.operations.get
. Pour le champ name, saisissez le nom de l'opération de sauvegarde de longue durée, comme indiqué dans la réponse à
projects.instances.backups.create
. Exemple :projects/[PROJECT_ID]/instances/test-instance/backups/example-db/operations/_auto_1492721321097206
(Remplacez cette valeur par le nom d'opération que vous avez reçu.) Vous pouvez également extraire le nom de cette opération de sauvegarde en répertoriant les opérations de sauvegarde de longue durée.
Cliquez sur Exécuter et consultez la réponse. Lorsqu'une opération est terminée, le champ
done
est défini surtrue
.
Pour interroger une opération de sauvegarde de longue durée, appelez la méthode projects.instances.backups.operations.get
de façon répétée jusqu'à ce que l'opération soit terminée. Utilisez un intervalle entre chaque tentative d'interrogation. Par exemple, effectuez une interrogation toutes les 10 secondes.
Répertorie les opérations de sauvegarde de longue durée
Utilisez projects.instances.backups.operations.list
pour répertorier les opérations associées à une même sauvegarde ou projects.instances.backupOperations.list
pour répertorier toutes les opérations de sauvegarde de l'instance.
- Cliquez sur
projects.instances.backups.operations.list
. Pour le champ name, saisissez la valeur suivante :
projects/[PROJECT_ID]/instances/test-instance/backups/example-db-backup-4/operations
Cliquez sur Exécuter. La réponse contient la liste des opérations de sauvegarde de longue durée.
Annuler une opération de sauvegarde de longue durée
La méthode projects.instances.backups.operations.cancel
permet d'annuler une opération de sauvegarde de longue durée.
- Cliquez sur
projects.instances.backups.operations.cancel
. Pour le champ name, saisissez le nom de l'opération de sauvegarde de longue durée, comme indiqué dans la réponse de l'opération de sauvegarde de longue durée. Exemple :
projects/[PROJECT_ID]/instances/test-instance/backups/example-db-backup-4/operations/_auto_1492721321097206
(Remplacez cette valeur par le nom d'opération que vous avez reçu.) Vous pouvez également extraire le nom de cette opération de sauvegarde en répertoriant les opérations de sauvegarde de longue durée.
Cliquez sur Exécuter.
Opérations d'instance :
Les opérations de longue durée relatives aux instances sont les suivantes :
Obtenir l'état d'une opération d'instance de longue durée
La méthode projects.instances.operations.get
permet d'obtenir l'état d'une opération de longue durée portant sur une instance.
Voici un exemple de réponse renvoyée par projects.instances.create
:
{
"name": "projects/[PROJECT_ID]/instances/test-instance/operations/9af0cf8c1e123a2e",
"metadata": {
"@type": "type.googleapis.com/google.spanner.admin.instance.v1.CreateInstanceMetadata",
"instance": {
"name": "projects/[PROJECT_ID]/instances/test-instance",
"config": "projects/[PROJECT_ID]/instanceConfigs/regional-us-central1",
"displayName": "Test Instance",
"nodeCount": 1,
"state": "READY"
},
"startTime": "2017-04-24T22:45:41.130854Z"
}
}
La valeur name
en haut de la réponse indique que le service Spanner a créé une opération d'instance de longue durée nommée projects/[PROJECT_ID]/instances/test-instance/operations/9af0cf8c1e123a2e
.
Pour connaître l'état de cette opération d'instance de longue durée :
- Cliquez sur
projects.instances.operations.get
. Pour le champ name, saisissez le nom de l'opération d'instance de longue durée, comme indiqué dans la réponse à la commande
projects.instances.create
ouprojects.instances.patch
. Exemple :projects/[PROJECT_ID]/instances/test-instance/operations/9af0cf8c1e123a2e
(Remplacez cette valeur par le nom d'opération que vous avez reçu.) Pour extraire le nom de cette opération d'instance, vous pouvez également répertorier les opérations d'instance de longue durée.
Cliquez sur Exécuter et consultez la réponse. Lorsqu'une opération est terminée, le champ
done
est défini surtrue
.
Pour interroger une opération d'instance de longue durée, appelez la méthode projects.instances.operations.get
de façon répétée jusqu'à ce que l'opération soit terminée. Utilisez un intervalle entre chaque tentative d'interrogation. Par exemple, effectuez une interrogation toutes les 10 secondes.
Répertorier les opérations d'instance de longue durée
La méthode projects.instances.operations.list
vous permet de répertorier les opérations d'instance de longue durée.
- Cliquez sur
projects.instances.operations.list
. Pour le champ name, saisissez la valeur suivante :
projects/[PROJECT_ID]/instances/test-instance/operations
Cliquez sur Exécuter. La réponse contient la liste des opérations d'instance de longue durée.
Annuler une opération d'instance de longue durée
La méthode projects.instances.operations.cancel
permet d'annuler une opération d'instance de longue durée.
- Cliquez sur
projects.instances.operations.cancel
. Pour le champ name, saisissez le nom de l'opération d'instance de longue durée, comme indiqué dans la réponse à cette opération. Exemple :
projects/[PROJECT_ID]/instances/test-instance/operations/9af0cf8c1e123a2e
(Remplacez cette valeur par le nom d'opération que vous avez reçu.) Pour extraire le nom de cette opération d'instance, vous pouvez également répertorier les opérations d'instance de longue durée.
Cliquez sur Exécuter.
Supprimer une opération d'instance de longue durée
La méthode projects.instances.operations.delete
vous permet de supprimer une opération d'instance de longue durée.
- Cliquez sur
projects.instances.operations.delete
. Pour le champ name, saisissez le nom de l'opération d'instance de longue durée, comme indiqué dans la réponse à cette opération. Exemple :
projects/[PROJECT_ID]/instances/test-instance/operations/9af0cf8c1e123a2e
(Remplacez cette valeur par le nom d'opération que vous avez reçu.) Pour extraire le nom de cette opération d'instance, vous pouvez également répertorier les opérations d'instance de longue durée.
Cliquez sur Exécuter.