Questa pagina descrive come gestire il ciclo di vita di un'operazione a lunga esecuzione di Cloud Spanner utilizzando le API operative.
Le operazioni a lunga esecuzione sono chiamate di metodo, il cui completamento può richiedere molto tempo. Spanner crea operazioni a lunga esecuzione per diverse azioni di database, istanze e backup. Un esempio è il metodo per ripristinare un database, projects.instances.databases.restore
.
Quando ripristini un database, il servizio Spanner crea un'operazione a lunga esecuzione per monitorare l'avanzamento del ripristino.
Spanner fornisce API operative che consentono di controllare lo stato delle operazioni a lunga esecuzione. Puoi anche elencare e annullare operazioni a lunga esecuzione, nonché eliminare operazioni a lunga esecuzione.
In questa pagina viene descritto come gestire le operazioni a lunga esecuzione con l'API REST. Tuttavia, puoi anche gestire le operazioni a lunga esecuzione con:
- Librerie client di Spanner
- Lo strumento a riga di comando
gcloud
- La pagina Spanner nella console Google Cloud
Gestisci le operazioni a lunga esecuzione di Spanner utilizzando questi metodi:
Azione | Operazioni di database a lunga esecuzione | Operazioni di backup a lunga esecuzione | Operazioni di istanza a lunga esecuzione |
---|---|---|---|
Annullare un'operazione a lunga esecuzione | cancel |
cancel |
cancel |
Eliminare un'operazione a lunga esecuzione | Non supportato | Non supportato | delete |
Verificare lo stato di un'operazione a lunga esecuzione | get |
get |
get |
Elenca operazioni a lunga esecuzione | list |
list |
list |
Operazioni del database
Di seguito sono riportate le operazioni di database a lunga esecuzione.
projects.instances.databases.create
projects.instances.databases.restore
projects.instances.databases.updateDdl
projects.instances.databaseOperations.list
Verificare lo stato di un'operazione di database a lunga esecuzione
Utilizza projects.instances.databases.operations.get
per ottenere lo stato di un'operazione di database a lunga esecuzione.
Ad esempio, questa è una risposta di 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"
}
}
Il valore name
nella parte superiore della risposta mostra il servizio Spanner creato un'operazione di database a lunga esecuzione denominata projects/[PROJECT_ID]/instances/test-instance/databases/example-db/operations/_auto_1492721321097206
.
Per ottenere lo stato dell'operazione a lunga esecuzione del database:
- Fai clic su
projects.instances.databases.operations.get
. In name, inserisci il nome dell'operazione di database a lunga esecuzione come mostrato nella risposta a
projects.instances.databases.create
oprojects.instances.databases.updateDdl
. Ad esempio:projects/[PROJECT_ID]/instances/test-instance/databases/example-db/operations/_auto_1492721321097206
Utilizza il nome dell'operazione che hai ricevuto anziché questo valore. Puoi recuperare il nome dell'operazione per database anche elencando le operazioni di database a lunga esecuzione.
Fai clic su Esegui e visualizza la risposta. Al termine di un'operazione, il campo
done
verrà impostato sutrue
.
Per eseguire il polling di un'operazione di database a lunga esecuzione, richiama ripetutamente il metodo projects.instances.databases.operations.get
finché l'operazione non viene completata. Utilizzare un backoff tra ogni richiesta del sondaggio. Ad esempio, esegui il polling ogni 10 secondi.
Elenca operazioni di database a lunga esecuzione
Utilizza projects.instances.databases.operations.list
per elencare le operazioni di database a lunga esecuzione.
- Fai clic su
projects.instances.databases.operations.list
. In name (nome), inserisci:
projects/[PROJECT_ID]/instances/test-instance/databases/example-db/operations
Fai clic su Execute (Esegui). La risposta contiene le operazioni di database a lunga esecuzione.
Annullamento di un'operazione di database a lunga esecuzione
Utilizza projects.instances.databases.operations.cancel
per annullare un'operazione di database a lunga esecuzione.
- Fai clic su
projects.instances.databases.operations.cancel
. In name, inserisci il nome dell'operazione di database a lunga esecuzione, come mostrato nella risposta dell'operazione di database a lunga esecuzione. Ad esempio:
projects/[PROJECT_ID]/instances/test-instance/databases/example-db/operations/_auto_1492721321097206
Utilizza il nome dell'operazione che hai ricevuto anziché questo valore. Puoi recuperare il nome dell'operazione per database anche elencando le operazioni di database a lunga esecuzione.
Fai clic su Execute (Esegui).
Operazioni di backup
Di seguito sono riportate le operazioni di backup a lunga esecuzione.
Verificare lo stato di un'operazione di backup a lunga esecuzione
Utilizza projects.instances.backups.operations.get
per ottenere lo stato di un'operazione di backup a lunga esecuzione.
Ad esempio, questa è una risposta di 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"
}
}
Il valore name
nella parte superiore della risposta mostra il servizio Spanner creato un'operazione di backup a lunga esecuzione denominata projects/[PROJECT_ID]/instances/test-instance/backups/example-db/operations/_auto_op_0cf69250b487c2f7
.
Per ottenere lo stato dell'operazione di backup a lunga esecuzione:
- Fai clic su
projects.instances.backups.operations.get
. In name, inserisci il nome dell'operazione di backup a lunga esecuzione come mostrato nella risposta a
projects.instances.backups.create
. Ad esempio:projects/[PROJECT_ID]/instances/test-instance/backups/example-db/operations/_auto_1492721321097206
Utilizza il nome dell'operazione che hai ricevuto anziché questo valore. Puoi recuperare il nome dell'operazione di backup anche elencando le operazioni di backup a lunga esecuzione.
Fai clic su Esegui e visualizza la risposta. Al termine di un'operazione, il campo
done
verrà impostato sutrue
.
Per eseguire il polling di un'operazione di backup a lunga esecuzione, richiama ripetutamente il metodo projects.instances.backups.operations.get
finché l'operazione non viene completata. Utilizzare un backoff tra ogni richiesta del sondaggio. Ad esempio, esegui il polling ogni 10 secondi.
Elenca operazioni di backup a lunga esecuzione
Utilizza projects.instances.backups.operations.list
per elencare le operazioni su un singolo backup o projects.instances.backupOperations.list
per elencare tutte le operazioni di backup nell'istanza.
- Fai clic su
projects.instances.backups.operations.list
. In name (nome), inserisci:
projects/[PROJECT_ID]/instances/test-instance/backups/example-db-backup-4/operations
Fai clic su Execute (Esegui). La risposta contiene le operazioni a lunga esecuzione.
Annullare un'operazione di backup a lunga esecuzione
Utilizza projects.instances.backups.operations.cancel
per annullare un'operazione di backup a lunga esecuzione.
- Fai clic su
projects.instances.backups.operations.cancel
. In name, inserisci il nome dell'operazione di backup a lunga esecuzione come mostrato nella risposta dell'operazione di backup a lunga esecuzione. Ad esempio:
projects/[PROJECT_ID]/instances/test-instance/backups/example-db-backup-4/operations/_auto_1492721321097206
Utilizza il nome dell'operazione che hai ricevuto anziché questo valore. Puoi recuperare il nome dell'operazione di backup anche elencando le operazioni di backup a lunga esecuzione.
Fai clic su Execute (Esegui).
Operazioni dell'istanza
Di seguito sono riportate le operazioni di istanza a lunga esecuzione.
Visualizzare lo stato di un'operazione di istanza a lunga esecuzione
Utilizza projects.instances.operations.get
per ottenere lo stato di un'operazione di istanza a lunga esecuzione.
Ad esempio, questa è una risposta di 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"
}
}
Il valore name
nella parte superiore della risposta mostra che il servizio Spanner ha creato un'operazione di istanza a lunga esecuzione denominata projects/[PROJECT_ID]/instances/test-instance/operations/9af0cf8c1e123a2e
.
Per ottenere lo stato dell'operazione di istanza a lunga esecuzione:
- Fai clic su
projects.instances.operations.get
. In name, inserisci il nome dell'operazione a lunga esecuzione dell'istanza, come mostrato nella risposta a
projects.instances.create
oprojects.instances.patch
. Ad esempio:projects/[PROJECT_ID]/instances/test-instance/operations/9af0cf8c1e123a2e
Utilizza il nome dell'operazione che hai ricevuto anziché questo valore. Puoi anche recuperare il nome dell'operazione dell'istanza elencando le operazioni di istanza a lunga esecuzione.
Fai clic su Esegui e visualizza la risposta. Al termine di un'operazione, il campo
done
verrà impostato sutrue
.
Per eseguire il polling di un'operazione di istanza a lunga esecuzione, richiama ripetutamente il metodo projects.instances.operations.get
fino al completamento dell'operazione. Utilizzare un backoff tra ogni richiesta del sondaggio. Ad esempio, esegui il polling ogni 10 secondi.
Elenca operazioni di lunga esecuzione delle istanze
Utilizza projects.instances.operations.list
per elencare le operazioni delle istanze a lunga esecuzione.
- Fai clic su
projects.instances.operations.list
. In name (nome), inserisci:
projects/[PROJECT_ID]/instances/test-instance/operations
Fai clic su Execute (Esegui). La risposta contiene le operazioni dell'istanza a lunga esecuzione.
Annulla un'operazione di istanza a lunga esecuzione
Utilizza projects.instances.operations.cancel
per annullare un'operazione di istanza a lunga esecuzione.
- Fai clic su
projects.instances.operations.cancel
. In name, inserisci il nome dell'operazione a lunga esecuzione dell'istanza, come mostrato nella risposta dell'operazione dell'istanza a lunga esecuzione. Ad esempio:
projects/[PROJECT_ID]/instances/test-instance/operations/9af0cf8c1e123a2e
Utilizza il nome dell'operazione che hai ricevuto anziché questo valore. Puoi anche recuperare il nome dell'operazione dell'istanza elencando le operazioni di istanza a lunga esecuzione.
Fai clic su Execute (Esegui).
Elimina un'operazione di istanza a lunga esecuzione
Utilizza projects.instances.operations.delete
per eliminare un'operazione di istanza a lunga esecuzione.
- Fai clic su
projects.instances.operations.delete
. In name, inserisci il nome dell'operazione a lunga esecuzione dell'istanza, come mostrato nella risposta dell'operazione dell'istanza a lunga esecuzione. Ad esempio:
projects/[PROJECT_ID]/instances/test-instance/operations/9af0cf8c1e123a2e
Utilizza il nome dell'operazione che hai ricevuto anziché questo valore. Puoi anche recuperare il nome dell'operazione dell'istanza elencando le operazioni di istanza a lunga esecuzione.
Fai clic su Execute (Esegui).