Lange laufende Vorgänge verwalten

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:

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:

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:

  1. Klicken Sie auf projects.instances.databases.operations.get.
  2. Geben Sie unter Name den Namen des lange laufenden Datenbankvorgangs ein, so wie er in der Antwort auf projects.instances.databases.create oder projects.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.

  3. Klicken Sie auf Ausführen und sehen Sie sich die Antwort an. Wenn ein Vorgang abgeschlossen ist, wird im Feld done der Wert true 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.

  1. Klicken Sie auf projects.instances.databases.operations.list.
  2. Geben Sie unter Name Folgendes ein:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db/operations
    
  3. 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.

  1. Klicken Sie auf projects.instances.databases.operations.cancel.
  2. 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.

  3. 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:

  1. Klicken Sie auf projects.instances.backups.operations.get.
  2. 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.

  3. Klicken Sie auf Ausführen und sehen Sie sich die Antwort an. Wenn ein Vorgang abgeschlossen ist, wird im Feld done der Wert true 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.

  1. Klicken Sie auf projects.instances.backups.operations.list.
  2. Geben Sie unter Name Folgendes ein:

    projects/[PROJECT_ID]/instances/test-instance/backups/example-db-backup-4/operations
    
  3. 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.

  1. Klicken Sie auf projects.instances.backups.operations.cancel.
  2. 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.

  3. 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:

  1. Klicken Sie auf projects.instances.operations.get.
  2. Geben Sie unter Name den Namen des lange laufenden Instanzvorgangs ein, so wie er in der Antwort auf projects.instances.create oder projects.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.

  3. Klicken Sie auf Ausführen und sehen Sie sich die Antwort an. Wenn ein Vorgang abgeschlossen ist, wird im Feld done der Wert true 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.

  1. Klicken Sie auf projects.instances.operations.list.
  2. Geben Sie unter Name Folgendes ein:

    projects/[PROJECT_ID]/instances/test-instance/operations
    
  3. 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.

  1. Klicken Sie auf projects.instances.operations.cancel.
  2. 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.

  3. Klicken Sie auf Ausführen.

Lange laufenden Instanzvorgang löschen

Zum Löschen eines lange laufenden Instanzvorgangs verwenden Sie projects.instances.operations.delete.

  1. Klicken Sie auf projects.instances.operations.delete.
  2. 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.

  3. Klicken Sie auf Ausführen.