Auf dieser Seite wird gezeigt, wie Sie den Lebenszyklus eines lange laufenden Vorgangs in Cloud Spanner mithilfe von Vorgangs-APIs verwalten.
Lange laufende Vorgänge sind Methodenaufrufe, die viel Zeit in Anspruch nehmen können. Spanner erstellt lang andauernde Vorgänge für mehrere Instanz-, Datenbank- und Sicherungsaktionen. Ein Beispiel dafür ist die Methode projects.instances.databases.restore
zum Wiederherstellen einer Datenbank.
Wenn Sie eine Datenbank wiederherstellen, erstellt der Spanner-Dienst einen Vorgang mit langer Ausführungszeit, um den Fortschritt der Wiederherstellung zu verfolgen.
Spanner bietet Vorgangs-APIs, mit denen Sie den Status von Vorgängen mit langer Ausführungszeit prüfen können. Sie können lange laufende Vorgänge auch auflisten und abbrechen sowie lange laufende Instanzvorgänge löschen.
Auf dieser Seite wird beschrieben, wie Sie Vorgänge mit langer Ausführungszeit mit der REST API verwalten. Sie können jedoch auch Vorgänge mit langer Ausführungszeit so verwalten:
- Spanner-Clientbibliotheken
gcloud
-Befehlszeilentool- Die Spanner-Seite in der Google Cloud Console
Verwalten Sie Ihre lang andauernden Spanner-Vorgänge mit den folgenden Methoden:
Aktion | Lange laufende Datenbankvorgänge | Sicherungsvorgänge mit langer Ausführungszeit | Lange laufende Instanzvorgänge |
---|---|---|---|
Lange laufenden Vorgang abbrechen | cancel |
cancel |
cancel |
Lange laufenden Vorgang löschen | Nicht unterstützt | Nicht unterstützt | delete |
Status eines lange laufenden Vorgangs abrufen | get |
get |
get |
Lange laufende Vorgänge auflisten | list |
list |
list |
Datenbankvorgänge
Diese lange laufenden Datenbankvorgänge gibt es:
projects.instances.databases.create
projects.instances.databases.restore
projects.instances.databases.updateDdl
projects.instances.databaseOperations.list
Status eines lange laufenden Datenbankvorgangs abrufen
Mit projects.instances.databases.operations.get
haben Sie die Möglichkeit, den Status eines lange laufenden Datenbankvorgangs abzurufen.
Eine Antwort von projects.instances.databases.create
kann beispielsweise so aussehen:
{
"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"
}
}
Der Wert name
oben in der Antwort gibt an, dass der Spanner-Dienst einen lang andauernden Datenbankvorgang mit dem Namen projects/[PROJECT_ID]/instances/test-instance/databases/example-db/operations/_auto_1492721321097206
erstellt hat.
So erhalten Sie den Status eines lange laufenden Datenbankvorgangs:
- Klicken Sie auf
projects.instances.databases.operations.get
. Geben Sie unter Name den Namen des lange laufenden Datenbankvorgangs ein, so wie er in der Antwort auf
projects.instances.databases.create
oderprojects.instances.databases.updateDdl
zurückgegeben wurde. Beispiel:projects/[PROJECT_ID]/instances/test-instance/databases/example-db/operations/_auto_1492721321097206
(Verwenden Sie statt diesem Wert den Vorgangsnamen, den Sie erhalten haben.) Sie können den Datenbankvorgangsnamen auch durch Auflisten der lange laufenden Datenbankvorgänge erhalten.
Klicken Sie auf Ausführen und sehen Sie sich die Antwort an. Wenn ein Vorgang abgeschlossen ist, wird im Feld
done
der Werttrue
angezeigt.
Für die Abfrage eines lange laufenden Datenbankvorgang rufen Sie die Methode projects.instances.databases.operations.get
wiederholt auf, bis der Vorgang abgeschlossen ist. Verwenden Sie einen Backoff zwischen den Abfrageanforderungen. Rufen Sie beispielsweise alle 10 Sekunden ab.
Lange laufende Datenbankvorgänge auflisten
Zum Auflisten lange laufender Datenbankvorgänge verwenden Sie projects.instances.databases.operations.list
.
- Klicken Sie auf
projects.instances.databases.operations.list
. Geben Sie unter Name Folgendes ein:
projects/[PROJECT_ID]/instances/test-instance/databases/example-db/operations
Klicken Sie auf Execute. Die Antwort enthält die lange laufenden Datenbankvorgänge.
Lange laufenden Datenbankvorgang abbrechen
Für das Abbrechen eines Instanzvorgangs mit langer Ausführungszeit verwenden Sie projects.instances.databases.operations.cancel
.
- Klicken Sie auf
projects.instances.databases.operations.cancel
. Geben Sie unter Name den Namen des lange laufenden Datenbankvorgangs ein, der in der Antwort des lange laufenden Datenbankvorgangs angezeigt wird. Beispiel:
projects/[PROJECT_ID]/instances/test-instance/databases/example-db/operations/_auto_1492721321097206
(Verwenden Sie statt diesem Wert den Vorgangsnamen, den Sie erhalten haben.) Sie können den Datenbankvorgangsnamen auch durch Auflisten der lange laufenden Datenbankvorgänge erhalten.
Klicken Sie auf Ausführen.
Sicherungsvorgänge
Die folgenden Sicherungsvorgänge haben eine lange Ausführungszeit.
Status eines Sicherungsvorgangs mit langer Ausführungszeit abrufen
Verwenden Sie projects.instances.backups.operations.get
, um den Status eines Sicherungsvorgangs mit langer Ausführungszeit abzurufen.
Eine Antwort von projects.instances.backups.create
kann beispielsweise so aussehen:
{
"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"
}
}
Der Wert name
oben in der Antwort gibt an, dass der Spanner-Dienst einen lang andauernden Sicherungsvorgang mit dem Namen projects/[PROJECT_ID]/instances/test-instance/backups/example-db/operations/_auto_op_0cf69250b487c2f7
erstellt hat.
So erhalten Sie den Status eines lange andauernden Datenbankvorgangs:
- Klicken Sie auf
projects.instances.backups.operations.get
. Geben Sie für name den Namen des lange andauernden Sicherungsvorgangs ein, wie in der Antwort auf
projects.instances.backups.create
angegeben. Beispiel:projects/[PROJECT_ID]/instances/test-instance/backups/example-db/operations/_auto_1492721321097206
Verwenden Sie statt dieses Werts den Vorgangsnamen, den Sie erhalten haben. Sie können den Namen des Sicherungsvorgangs auch abrufen, indem Sie Sicherungsvorgänge mit langer Ausführungszeit auflisten.
Klicken Sie auf Ausführen und sehen Sie sich die Antwort an. Wenn ein Vorgang abgeschlossen ist, wird im Feld
done
der Werttrue
angezeigt.
Um einen Sicherungsvorgang mit langer Ausführungszeit abzufragen, rufen Sie die Methode projects.instances.backups.operations.get
so oft auf, bis der Vorgang abgeschlossen ist. Verwenden Sie einen Backoff zwischen den Abfrageanforderungen. Rufen Sie beispielsweise alle 10 Sekunden ab.
Sicherungsvorgänge mit langer Ausführungszeit auflisten
Mit projects.instances.backups.operations.list
können Sie die Vorgänge für eine einzelne Sicherung oder mit projects.instances.backupOperations.list
alle Sicherungsvorgänge in der Instanz auflisten.
- Klicken Sie auf
projects.instances.backups.operations.list
. Geben Sie unter Name Folgendes ein:
projects/[PROJECT_ID]/instances/test-instance/backups/example-db-backup-4/operations
Klicken Sie auf Ausführen. Die Antwort enthält die Vorgänge mit langer Ausführungszeit.
Sicherungsvorgang mit langer Ausführungszeit abbrechen
Verwenden Sie projects.instances.backups.operations.cancel
, um einen Sicherungsvorgang mit langer Ausführungszeit abzubrechen.
- Klicken Sie auf
projects.instances.backups.operations.cancel
. Geben Sie in name den Namen des Sicherungsvorgangs mit langer Ausführungszeit ein, wie er in der Antwort des Sicherungsvorgangs mit langer Ausführungszeit angezeigt wird. Beispiel:
projects/[PROJECT_ID]/instances/test-instance/backups/example-db-backup-4/operations/_auto_1492721321097206
Verwenden Sie statt dieses Werts den Vorgangsnamen, den Sie erhalten haben. Sie können den Namen des Sicherungsvorgangs auch abrufen, indem Sie Sicherungsvorgänge mit langer Ausführungszeit auflisten.
Klicken Sie auf Ausführen.
Instanzvorgänge
Diese lang laufenden Instanzvorgänge gibt es:
Status eines lange laufenden Instanzvorgangs abrufen
Zum Abrufen des Status eines lange laufenden Instanzvorgangs verwenden Sie projects.instances.operations.get
.
Eine Antwort von projects.instances.create
kann beispielsweise so aussehen:
{
"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"
}
}
Der Wert name
oben in der Antwort gibt an, dass der Spanner-Dienst einen lang andauernden Instanzvorgang mit dem Namen projects/[PROJECT_ID]/instances/test-instance/operations/9af0cf8c1e123a2e
erstellt hat.
So erhalten Sie den Status des lange laufenden Instanzvorgangs:
- Klicken Sie auf
projects.instances.operations.get
. Geben Sie unter Name den Namen des lange laufenden Instanzvorgangs ein, so wie er in der Antwort auf
projects.instances.create
oderprojects.instances.patch
zurückgegeben wurde. Beispiel:projects/[PROJECT_ID]/instances/test-instance/operations/9af0cf8c1e123a2e
(Verwenden Sie statt diesem Wert den Vorgangsnamen, den Sie erhalten haben.) Sie können den Instanzvorgangsnamen auch über das Auflisten lange laufender Instanzvorgänge abrufen.
Klicken Sie auf Ausführen und sehen Sie sich die Antwort an. Wenn ein Vorgang abgeschlossen ist, wird im Feld
done
der Werttrue
angezeigt.
Für die Abfrage eines lange laufenden Instanzvorgangs rufen Sie die Methode projects.instances.operations.get
wiederholt auf, bis der Vorgang abgeschlossen ist. Verwenden Sie einen Backoff zwischen den Abfrageanforderungen. Rufen Sie beispielsweise alle 10 Sekunden ab.
Lange laufende Instanzvorgänge auflisten
Mit projects.instances.operations.list
können Sie lange laufende Instanzvorgänge auflisten.
- Klicken Sie auf
projects.instances.operations.list
. Geben Sie unter Name Folgendes ein:
projects/[PROJECT_ID]/instances/test-instance/operations
Klicken Sie auf Ausführen. Die Antwort enthält die lange laufenden Instanzvorgänge.
Lange laufenden Instanzvorgang abbrechen
Mit projects.instances.operations.cancel
können Sie einen lange laufenden Instanzvorgang abbrechen.
- Klicken Sie auf
projects.instances.operations.cancel
. Geben Sie unter Name den Namen des lange laufenden Instanzvorgangs ein, der in der Antwort des lange laufenden Instanzvorgangs angezeigt wird. Beispiel:
projects/[PROJECT_ID]/instances/test-instance/operations/9af0cf8c1e123a2e
(Verwenden Sie statt diesem Wert den Vorgangsnamen, den Sie erhalten haben.) Sie können den Instanzvorgangsnamen auch über das Auflisten lange laufender Instanzvorgänge abrufen.
Klicken Sie auf Ausführen.
Lange laufenden Instanzvorgang löschen
Zum Löschen eines lange laufenden Instanzvorgangs verwenden Sie projects.instances.operations.delete
.
- Klicken Sie auf
projects.instances.operations.delete
. Geben Sie unter Name den Namen des lange laufenden Instanzvorgangs ein, der in der Antwort des lange laufenden Instanzvorgangs angezeigt wird. Beispiel:
projects/[PROJECT_ID]/instances/test-instance/operations/9af0cf8c1e123a2e
(Verwenden Sie statt diesem Wert den Vorgangsnamen, den Sie erhalten haben.) Sie können den Instanzvorgangsnamen auch über das Auflisten lange laufender Instanzvorgänge abrufen.
Klicken Sie auf Ausführen.