Auf dieser Seite wird beschrieben, wie Sie den Lebenszyklus eines lang laufenden Vorgangs in Spanner mithilfe von gcloud spanner operations
-Befehlen und der Operations REST API verwalten. Einige Verfahren können auch in der Google Cloud Konsole ausgeführt werden.
Lange laufende Vorgänge sind Methodenaufrufe, die viel Zeit in Anspruch nehmen können. Spanner erstellt Vorgänge mit langer Ausführungszeit 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 Wiederherstellungsfortschritt zu verfolgen. Wenn der Vorgang länger als erwartet dauert, können Sie den Fortschritt mit gcloud
prüfen. Wenn der Vorgang nicht reagiert, können Sie ihn mit gcloud
abbrechen.
Spanner bietet Vorgangs-APIs, mit denen Sie den Fortschritt 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.
Sie können Vorgänge mit langer Ausführungszeit mit den folgenden Tools prüfen und verwalten:
- Spanner-Clientbibliotheken
gcloud
-Befehlszeilentool- Die Google Cloud -Konsole
REST API-Befehle für die Vorgangsverwaltung
Sie können Ihre lange laufenden Vorgänge von Spanner mit den folgenden REST-Methoden verwalten:
Aktion | Lange laufende Datenbankvorgänge | Lange laufende Instanzvorgänge |
---|---|---|
Lange laufenden Vorgang abbrechen | cancel |
cancel |
Lange laufenden Vorgang löschen | Nicht unterstützt | delete |
Status eines Vorgangs mit langer Ausführungszeit prüfen | get |
get |
Lange laufende Vorgänge auflisten | list |
list |
Informationen zur Verwendung von REST mit Spanner finden Sie unter Erste Schritte mit Spanner mit REST.
Instanzvorgänge
Diese lang laufenden Instanzvorgänge gibt es:
Fortschritt eines lange laufenden Instanzvorgangs prüfen
Mit projects.instances.operations.get
können Sie den Fortschritt eines lange laufenden Instanzvorgangs prüfen.
Eine Antwort von projects.instances.create
kann beispielsweise so aussehen:
{
"name": "projects/test01/instances/test-instance/operations/_auto_1492721321097206",
"metadata": {
"@type": "type.googleapis.com/google.spanner.admin.instance.v1.CreateInstanceMetadata",
"instance": {
"name": "projects/<VAR>PROJECT-ID</VAR>/instances/test-instance",
"config": "projects/<VAR>PROJECT-ID</VAR>/instanceConfigs/regional-us-central1",
"displayName": "Test Instance",
"nodeCount": 1,
"state": "READY"
},
"startTime": "2017-04-24T22:45:41.130854Z"
}
}
Der Wert name
am Anfang der Antwort gibt an, dass der Spanner-Dienst einen lange laufenden Instanzvorgang namens projects/test01/instances/test-instance/operations/_auto_1492721321097206
erstellt hat.
So prüfen Sie den Fortschritt des lange laufenden Instanzvorgangs:
- Rufen Sie
projects.instances.operations.get
auf. 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/INSTANCE-NAME/operations/OPERATION-ID
Ersetzen Sie Folgendes:
- PROJECT-ID: Projekt-ID.
- INSTANCE-NAME: der Name der Instanz.
- OPERATION-ID: Die Vorgangs-ID.
Sie können den Instanzvorgangsnamen auch über das Auflisten lange laufender Instanzvorgänge abrufen.
Klicken Sie auf Ausführen. Wenn ein Vorgang abgeschlossen ist, wird das Feld
done
auftrue
gesetzt.
Um kontinuierliche Updates zu erhalten, rufen Sie die Methode projects.instances.databases.operations.get
so oft auf, bis der Vorgang abgeschlossen ist. Verwenden Sie einen Backoff zwischen den einzelnen Anfragen. Stellen Sie beispielsweise alle 10 Sekunden eine Anfrage.
Lange laufende Instanzvorgänge auflisten
Mit projects.instances.operations.list
können Sie lange laufende Instanzvorgänge auflisten.
- Rufen Sie
projects.instances.operations.list
auf. Geben Sie Folgendes für name (Name) ein:
projects/PROJECT-ID/instances/INSTANCE-NAME/operationsOPERATION-ID
Ersetzen Sie Folgendes:
- PROJECT-ID: Projekt-ID.
- INSTANCE-NAME: der Name der Instanz.
- OPERATION-ID: Die Vorgangs-ID.
Klicken Sie auf Ausführen. Die Antwort enthält eine Liste von Vorgängen mit langer Ausführungszeit.
Lange laufenden Instanzvorgang abbrechen
Mit projects.instances.operations.cancel
können Sie einen lange laufenden Instanzvorgang abbrechen.
- Rufen Sie
projects.instances.operations.cancel
auf. Geben Sie unter Name den Namen des lange laufenden Instanzvorgangs ein, der in der Antwort des lange laufenden Instanzvorgangs angezeigt wird.
projects/PROJECT-ID/instances/INSTANCE-NAME/operations/OPERATION-ID
Ersetzen Sie Folgendes:
- PROJECT-ID: Projekt-ID.
- INSTANCE-NAME: der Name der Instanz.
- OPERATION-ID: Die Vorgangs-ID.
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.
projects/<VAR>PROJECT-ID</VAR>/instances/<VAR>INSTANCE-NAME</VAR>/operations/<VAR>OPERATION-ID</VAR>
Ersetzen Sie Folgendes:
- PROJECT-ID: Projekt-ID.
- INSTANCE-NAME: der Name der Instanz.
- OPERATION-ID: Die Vorgangs-ID.
Sie können den Instanzvorgangsnamen auch über das Auflisten lange laufender Instanzvorgänge abrufen.
Gehen Sie zu Ausführen. Der Vorgang wird gelöscht.
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
Fortschritt eines lange laufenden Datenbankvorgangs prüfen
Mit projects.instances.databases.operations.get
haben Sie die Möglichkeit, den Fortschritt eines lange laufenden Datenbankvorgangs abzurufen.
Eine Antwort von projects.instances.databases.create
kann beispielsweise so aussehen:
{
"name": "projects/test01/instances/test-instance/databases/example-db/operations/_auto_1492721321097206",
"metadata": {
"@type": "type.googleapis.com/google.spanner.admin.database.v1.CreateDatabaseMetadata",
"database": "projects/test01/instances/test-instance/databases/example-db"
}
}
Der Wert name
am Anfang der Antwort gibt an, dass der Spanner-Dienst einen lange laufenden Datenbankvorgang namens projects/test01/instances/test-instance/databases/example-db/operations/_auto_1492721321097206
erstellt hat.
So prüfen Sie den Fortschritt eines lange laufenden Datenbankvorgangs:
Rufen Sie
projects.instances.databases.operations.get
auf.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.projects/PROJECT-ID/instances/INSTANCE-NAME/databases/example-db/operations/OPERATION-ID
Ersetzen Sie Folgendes:
- PROJECT-ID: Projekt-ID.
- INSTANCE-NAME: der Name der Instanz.
- OPERATION-ID: Die Vorgangs-ID.
Sie können den Datenbankvorgangsnamen auch durch Auflisten der lange laufenden Datenbankvorgänge erhalten.
Klicken Sie auf Ausführen. Wenn ein Vorgang abgeschlossen ist, wird das Feld
done
auftrue
gesetzt.
Um kontinuierliche Updates zu erhalten, rufen Sie die Methode projects.instances.databases.operations.get
so oft auf, bis der Vorgang abgeschlossen ist. Verwenden Sie einen Backoff zwischen den einzelnen Anfragen. Stellen Sie beispielsweise alle 10 Sekunden eine Anfrage.
Lange laufende Datenbankvorgänge auflisten
Zum Auflisten lange laufender Datenbankvorgänge verwenden Sie projects.instances.databases.operations.list
.
- Rufen Sie
projects.instances.databases.operations.list
auf. Geben Sie Folgendes für name (Name) ein:
projects/PROJECT-ID/instances/INSTANCE-NAME/databases/example-db/OPERATION-ID
Ersetzen Sie Folgendes:
- PROJECT-ID: Projekt-ID.
- INSTANCE-NAME: der Name der Instanz.
- OPERATION-ID: Die Vorgangs-ID.
Klicken Sie auf Ausführen. Die Antwort enthält eine Liste von Vorgängen mit langer Ausführungszeit.
Lange laufenden Datenbankvorgang abbrechen
Mit projects.instances.databases.operations.cancel
können Sie einen lange laufenden Datenbankvorgang abbrechen.
- Rufen Sie
projects.instances.databases.operations.cancel
auf. Geben Sie unter Name den Namen des lange laufenden Datenbankvorgangs ein, der in der Antwort des lange laufenden Datenbankvorgangs angezeigt wird.
projects/PROJECT-ID/instances/INSTANCE-NAME/databases/example-db/OPERATION-ID
Ersetzen Sie Folgendes:
- PROJECT-ID: Projekt-ID.
- INSTANCE-NAME: der Name der Instanz.
- OPERATION-ID: Die Vorgangs-ID.
Sie können den Datenbankvorgangsnamen auch durch Auflisten der lange laufenden Datenbankvorgänge erhalten.
Klicken Sie auf Ausführen.
Vorgänge zur Schemaaktualisierung
Diese lang laufenden Schemaaktualisierungsvorgänge gibt es:
Fortschritt eines Vorgangs mit langer Ausführungszeit für die Schemaaktualisierung prüfen
Console
Wählen Sie im Spanner-Navigationsmenü den Tab Vorgänge aus. Auf der Seite Vorgänge wird eine Liste der laufenden Vorgänge angezeigt.
Suchen Sie in der Liste nach dem Schemavorgang. Wenn der Vorgang noch ausgeführt wird, zeigt die Fortschrittsanzeige in der Spalte Ende den Prozentsatz des Vorgangs an, der abgeschlossen ist, wie im folgenden Bild dargestellt:
gcloud
Verwenden Sie gcloud spanner operations describe
, um den Fortschritt eines Vorgangs zu prüfen.
Rufen Sie die Vorgangs-ID ab:
gcloud spanner operations list \ --instance=INSTANCE-NAME \ --database=DATABASE-NAME \ --type=DATABASE_UPDATE_DDL
Ersetzen Sie Folgendes:
- INSTANCE-NAME: Der Name der Spanner-Instanz.
- DATABASE-NAME: der Name der Instanz.
- DATABASE-NAME: der Name der Datenbank
Führen Sie
gcloud spanner operations describe
aus.gcloud spanner operations describe OPERATION-ID \ --instance=INSTANCE-NAME \ --database=DATABASE-NAME
Ersetzen Sie Folgendes:
- OPERATION-ID: Die Vorgangs-ID des Vorgangs, den Sie prüfen möchten.
- INSTANCE-NAME: Der Name der Spanner-Instanz.
- DATABASE-NAME: der Name der Spanner-Datenbank.
Im Abschnitt
progress
der Ausgabe wird der Prozentsatz des abgeschlossenen Vorgangs angezeigt. Die Ausgabe sieht dann ungefähr so aus: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 ...
REST Version 1
Rufen Sie die Vorgangs-ID ab:
gcloud spanner operations list \ --instance=INSTANCE-NAME \ --database=DATABASE-NAME \ --type=DATABASE_UPDATE_DDL
Ersetzen Sie Folgendes:
- INSTANCE-NAME: Der Name der Spanner-Instanz.
- DATABASE-NAME: der Name der Datenbank
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT-ID: Projekt-ID.
- INSTANCE-ID: Instanz-ID.
- DATABASE-ID: die Datenbank-ID.
- OPERATION-ID: Die Vorgangs-ID.
HTTP-Methode und URL:
GET https://spanner.googleapis.com/v1/projects/PROJECT-ID/instances/INSTANCE-ID/databases/DATABASE-ID/operations/OPERATION-ID
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ ... "progress": [ { "progressPercent": 100, "startTime": "2023-05-27T00:52:27.366688Z", "endTime": "2023-05-27T00:52:30.184845Z" }, { "progressPercent": 100, "startTime": "2023-05-27T00:52:30.184845Z", "endTime": "2023-05-27T00:52:40.750959Z" } ], ... "done": true, "response": { "@type": "type.googleapis.com/google.protobuf.Empty" } }
Wenn der Vorgang zu lange dauert, können Sie ihn abbrechen. Weitere Informationen finden Sie unter Vorgang mit langer Laufzeit für die Schemaaktualisierung abbrechen.
Lange laufende Schemaaktualisierungsvorgänge auflisten
gcloud
gcloud spanner operations list \ --instance=INSTANCE-NAME \ --database=DATABASE-NAME \ --type=DATABASE_UPDATE_DDL
Ersetzen Sie Folgendes:
- INSTANCE-NAME: Der Name der Spanner-Instanz.
- DATABASE-NAME: der Name der Datenbank
Die Ausgabe sieht dann ungefähr so aus:
OPERATION-ID STATEMENTS DONE @TYPE
_auto_op_123456 CREATE INDEX SingersByFirstLastName ON Singers(FirstName, LastName) False UpdateDatabaseDdlMetadata
_auto_op_234567 CREATE INDEX SongsBySingerAlbumSongName ON Songs(SingerId, AlbumId, SongName), INTERLEAVE IN Albums True CreateDatabaseMetadata
Lange laufenden Schemaaktualisierungsvorgang abbrechen
gcloud
Rufen Sie die Vorgangs-ID ab:
gcloud spanner operations list \ --instance=INSTANCE-NAME \ --database=DATABASE-NAME \ --type=DATABASE_UPDATE_DDL
Ersetzen Sie Folgendes:
- INSTANCE-NAME: Der Name der Spanner-Instanz.
- DATABASE-NAME: der Name der Datenbank
Mit
gcloud spanner operations cancel
können Sie einen lange laufenden Vorgang zum Aktualisieren des Schemas abbrechen.gcloud spanner operations cancel OPERATION-ID \ --instance=INSTANCE-NAME
Ersetzen Sie Folgendes:
- OPERATION-ID: Die Vorgangs-ID des Vorgangs, den Sie prüfen möchten.
- INSTANCE-NAME: Der Name der Spanner-Instanz.
REST V1
Mit projects.instances.databases.operations.cancel
können Sie einen lange laufenden Vorgang zum Aktualisieren des Schemas abbrechen.
Rufen Sie die Vorgangs-ID ab:
gcloud spanner operations list \ --instance=INSTANCE-NAME \ --database=DATABASE-NAME \ --type=DATABASE_UPDATE_DDL
Ersetzen Sie Folgendes:
- INSTANCE-NAME: Der Name der Spanner-Instanz.
- DATABASE-NAME: der Name der Datenbank
Rufen Sie
projects.instances.databases.operations.cancel
auf.Geben Sie unter Name den Namen des lange laufenden Schemaaktualisierungsvorgangs ein, der in der Antwort des lange laufenden Schemaaktualisierungsvorgangs angezeigt wird.
projects/PROJECT-ID/instances/INSTANCE-NAME/databases/example-db/operations/OPERATION-ID
Ersetzen Sie Folgendes:
- PROJECT-ID: Projekt-ID.
- INSTANCE-NAME: der Name der Instanz.
- OPERATION-ID: Die Vorgangs-ID.
Sie können den Namen des Schemaaktualisierungsvorgangs auch über das Auflisten lange laufender Instanzvorgänge abrufen.
Klicken Sie auf Ausführen. Der Vorgang wird beendet.
Sicherungs- und Wiederherstellungsvorgänge
Die folgenden Sicherungsvorgänge haben eine lange Ausführungszeit.
Fortschritt eines Sicherungs- oder Wiederherstellungsvorgangs mit langer Ausführungszeit prüfen
Console
Sicherung
Wählen Sie im Spanner-Navigationsmenü den Tab Vorgänge aus. Auf der Seite Vorgänge wird eine Liste der derzeit ausgeführten Vorgänge angezeigt.
Suchen Sie in der Liste nach dem Schemavorgang. Wenn der Vorgang noch ausgeführt wird, zeigt die Fortschrittsanzeige in der Spalte Ende den Prozentsatz des Vorgangs an, der abgeschlossen ist, wie im folgenden Bild dargestellt:
Wiederherstellen
Den Fortschritt des Wiederherstellungsvorgangs können Sie anhand der Fortschrittsanzeige prüfen, die während der Wiederherstellung angezeigt wird (siehe Abbildung unten):
Wenn der Vorgang zu lange dauert, können Sie ihn abbrechen. Weitere Informationen finden Sie unter Vorgang mit langer Laufzeit für eine Instanz abbrechen.
gcloud
Verwenden Sie gcloud spanner operations describe
, um den Fortschritt eines Sicherungs- oder Wiederherstellungsvorgangs zu prüfen.
Rufen Sie die Vorgangs-ID ab:
gcloud spanner operations list \ --instance=INSTANCE-NAME \ --database=DATABASE-NAME \ --type=TYPE
Ersetzen Sie Folgendes:
- INSTANCE-NAME: Der Name der Spanner-Instanz.
- DATABASE-NAME: der Name der Datenbank
- TYPE: Der Typ des Vorgangs. Mögliche Werte sind
BACKUP
undDATABASE_RESTORE
.
Führen Sie
gcloud spanner operations describe
aus.gcloud spanner operations describe OPERATION-ID \ --instance=INSTANCE-NAME \ --database=DATABASE-NAME
Ersetzen Sie Folgendes:
- OPERATION-ID: Die Vorgangs-ID des Vorgangs, den Sie prüfen möchten.
- INSTANCE-NAME: Der Name der Spanner-Instanz.
- DATABASE-NAME: der Name der Spanner-Datenbank.
Im Abschnitt
progress
der Ausgabe wird der Prozentsatz des abgeschlossenen Vorgangs angezeigt. Die Ausgabe sieht dann ungefähr so aus: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 ...
REST Version 1
Rufen Sie die Vorgangs-ID ab:
gcloud spanner operations list
--instance=INSTANCE-NAME
--database=DATABASE-NAME
--type=DATABASE_UPDATE_DDL
Ersetzen Sie Folgendes:
- INSTANCE-NAME: Der Name der Spanner-Instanz.
- DATABASE-NAME: der Name der Datenbank
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT-ID: Projekt-ID.
- INSTANCE-ID: Instanz-ID.
- DATABASE-ID: die Datenbank-ID.
- OPERATION-ID: Die Vorgangs-ID.
HTTP-Methode und URL:
GET https://spanner.googleapis.com/v1/projects/PROJECT-ID/instances/INSTANCE-ID/databases/DATABASE-ID/operations/OPERATION-ID
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ ... "progress": [ { "progressPercent": 100, "startTime": "2023-05-27T00:52:27.366688Z", "endTime": "2023-05-27T00:52:30.184845Z" }, { "progressPercent": 100, "startTime": "2023-05-27T00:52:30.184845Z", "endTime": "2023-05-27T00:52:40.750959Z" } ], ... "done": true, "response": { "@type": "type.googleapis.com/google.protobuf.Empty" } }
Wenn der Vorgang zu lange dauert, können Sie ihn abbrechen. Weitere Informationen finden Sie unter Lang andauernden Sicherungsvorgang abbrechen.
Sicherungs- oder Wiederherstellungsvorgä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.
Rufen Sie
projects.instances.backups.operations.list
auf.Geben Sie Folgendes für name (Name) ein:
projects/PROJECT-ID/instances/INSTANCE-NAME/backups/BACKUP-NAME/OPERATION-ID
Ersetzen Sie Folgendes:
- PROJECT-ID: Projekt-ID.
- INSTANCE-NAME: der Name der Instanz.
- BACKUP-NAME: der Name der Sicherung.
- OPERATION-ID: Die Vorgangs-ID.
Klicken Sie auf Ausführen. Die Antwort enthält eine Liste von Vorgängen 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.
Rufen Sie
projects.instances.backups.operations.cancel
auf.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.
projects/PROJECT-ID/instances/INSTANCE-NAME/backups/BACKUP-NAME/operations/OPERATION-ID
Ersetzen Sie Folgendes:
- PROJECT-ID: Projekt-ID.
- INSTANCE-NAME: der Name der Instanz.
- BACKUP-NAME: der Name der Sicherung.
- OPERATION-ID: Die Vorgangs-ID.
Sie können den Namen des Sicherungsvorgangs auch abrufen, indem Sie Sicherungsvorgänge mit langer Ausführungszeit auflisten.
Klicken Sie auf Ausführen.