Administrar operaciones de larga duración

En esta página, se describe cómo administrar el ciclo de vida de una operación de larga duración de Cloud Spanner mediante las API de operaciones.

Las operaciones de larga duración son llamadas a métodos que pueden tardar una gran cantidad de tiempo en completarse. Spanner crea operaciones de larga duración para varias acciones de instancias, bases de datos y copias de seguridad. Un ejemplo es el método para restablecer una base de datos, projects.instances.databases.restore. Cuando restableces una base de datos, el servicio de Spanner crea una operación de larga duración para hacer un seguimiento del progreso del restablecimiento. Spanner proporciona las APIs de Operations que te permiten verificar el estado de las operaciones de larga duración. También puedes enumerar y cancelar operaciones de larga duración, así como borrar operaciones de instancias de larga duración.

En esta página, se describe cómo administrar operaciones de larga duración con la API de REST. Sin embargo, también puedes administrar operaciones de larga duración con estas opciones:

Administra tus operaciones de larga duración de Spanner mediante estos métodos:

Acción Operaciones de base de datos de larga duración Operaciones de creación de copias de seguridad de larga duración Operaciones de instancia de larga duración
Cancelar una operación de larga duración cancel cancel cancel
Borrar una operación de larga duración No compatible No compatible delete
Obtener el estado de una operación de larga duración get get get
Enumerar las operaciones de larga duración list list list

Operaciones de bases de datos

Las siguientes son operaciones de base de datos de larga duración.

Obtener el estado de una operación de base de datos de larga duración

Usa projects.instances.databases.operations.get para obtener el estado de una operación de base de datos de larga duración.

A modo de ejemplo, esta es una respuesta de 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"
  }
}

El valor name en la parte superior de la respuesta muestra que el servicio de Spanner creó una operación de base de datos de larga duración llamada projects/[PROJECT_ID]/instances/test-instance/databases/example-db/operations/_auto_1492721321097206.

Para obtener el estado de la operación de base de datos de larga duración, sigue estos pasos:

  1. Haz clic en projects.instances.databases.operations.get.
  2. En nombre, ingresa el nombre de la operación de base de datos de larga duración como se muestra en la respuesta a projects.instances.databases.create o projects.instances.databases.updateDdl. Por ejemplo:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db/operations/_auto_1492721321097206
    

    (Usa el nombre de operación que recibiste en lugar de este valor). También puedes recuperar el nombre de la operación de base de datos mediante la enumeración de las operaciones de base de datos de larga duración.

  3. Haz clic en Ejecutar y observa la respuesta. Cuando se realice una operación, el campo done se configurará como true.

Para sondear una operación de base de datos de larga duración, invoca de manera repetida el método projects.instances.databases.operations.get hasta que se realice la operación. Usa una retirada entre cada solicitud de sondeo. Por ejemplo, realiza sondeos cada 10 segundos.

Enumerar operaciones de base de datos de larga duración

Usa projects.instances.databases.operations.list para enumerar las operaciones de base de datos de larga duración.

  1. Haz clic en projects.instances.databases.operations.list.
  2. En nombre, ingresa lo siguiente:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db/operations
    
  3. Haz clic en Ejecutar. La respuesta contiene las operaciones de base de datos de larga duración.

Cancelar una operación de base de datos de larga duración

Usa projects.instances.databases.operations.cancel para cancelar una operación de instancia de larga duración.

  1. Haz clic en projects.instances.databases.operations.cancel.
  2. En nombre, ingresa el nombre de la operación de base de datos de larga duración como se muestra en la respuesta de esa operación. Por ejemplo:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db/operations/_auto_1492721321097206
    

    (Usa el nombre de operación que recibiste en lugar de este valor). También puedes recuperar el nombre de la operación de base de datos mediante la enumeración de las operaciones de base de datos de larga duración.

  3. Haz clic en Ejecutar (Execute).

Operaciones de copia de seguridad

Las siguientes son operaciones de instancia de larga duración.

Obtén el estado de una operación de copia de seguridad de larga duración

Usa projects.instances.backups.operations.get para obtener el estado de una operación de copia de seguridad de larga duración.

A modo de ejemplo, esta es una respuesta de 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"
  }
}

El valor name en la parte superior de la respuesta muestra que el servicio de Spanner creó una operación de copia de seguridad de larga duración llamada projects/[PROJECT_ID]/instances/test-instance/backups/example-db/operations/_auto_op_0cf69250b487c2f7.

Para obtener el estado de la operación de copia de seguridad de larga duración, sigue estos pasos:

  1. Haz clic en projects.instances.backups.operations.get.
  2. En nombre, ingresa el nombre de la operación de copia de seguridad de larga duración como se muestra en la respuesta a projects.instances.backups.create. Por ejemplo:

    projects/[PROJECT_ID]/instances/test-instance/backups/example-db/operations/_auto_1492721321097206
    

    (Usa el nombre de operación que recibiste en lugar de este valor). También puedes recuperar el nombre de la operación de copia de seguridad mediante la enumeración de las operaciones de copia de seguridad de larga duración.

  3. Haz clic en Ejecutar y observa la respuesta. Cuando se realice una operación, el campo done se configurará como true.

Para sondear una operación de copia de seguridad de larga duración, invoca varias veces el método projects.instances.backups.operations.get hasta que se complete la operación. Usa una retirada entre cada solicitud de sondeo. Por ejemplo, realiza sondeos cada 10 segundos.

#list_long-running_backup_operations

Usa projects.instances.backups.operations.list a fin de enumerar las operaciones en una sola copia de seguridad o projects.instances.backupOperations.list para enumerar todas las operaciones de copia de seguridad en la instancia.

  1. Haz clic en projects.instances.backups.operations.list.
  2. En nombre, ingresa lo siguiente:

    projects/[PROJECT_ID]/instances/test-instance/backups/example-db-backup-4/operations
    
  3. Haz clic en Ejecutar. La respuesta contiene las operaciones de instancia de larga duración.

Cancela una operación de copia de seguridad de larga duración

Usa projects.instances.backups.operations.cancel para cancelar una operación de instancia de larga duración.

  1. Haz clic en projects.instances.backups.operations.cancel.
  2. En nombre, ingresa el nombre de la operación de copia de seguridad de larga duración como se muestra en la respuesta de esa operación. Por ejemplo:

    projects/[PROJECT_ID]/instances/test-instance/backups/example-db-backup-4/operations/_auto_1492721321097206
    

    (Usa el nombre de operación que recibiste en lugar de este valor). También puedes recuperar el nombre de la operación de copia de seguridad mediante la enumeración de las operaciones de copia de seguridad de larga duración.

  3. Haz clic en Ejecutar (Execute).

Operaciones de instancias

Las siguientes son operaciones de instancia de larga duración.

Obtener el estado de una operación de instancia de larga duración

Usa projects.instances.operations.get para obtener el estado de una operación de instancia de larga duración.

A modo de ejemplo, esta es una respuesta de 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"
  }
}

El valor name en la parte superior de la respuesta muestra que el servicio de Spanner creó una operación de instancia de larga duración llamada projects/[PROJECT_ID]/instances/test-instance/operations/9af0cf8c1e123a2e.

Para obtener el estado de la operación de instancia de larga duración, sigue estos pasos:

  1. Haz clic en projects.instances.operations.get.
  2. En nombre, ingresa el nombre de la operación de instancia de larga duración como se muestra en la respuesta a projects.instances.create o projects.instances.patch. Por ejemplo:

    projects/[PROJECT_ID]/instances/test-instance/operations/9af0cf8c1e123a2e
    

    (Usa el nombre de operación que recibiste en lugar de este valor). También puedes recuperar el nombre de la operación de instancia mediante la enumeración de las operaciones de instancia de larga duración.

  3. Haz clic en Ejecutar y observa la respuesta. Cuando se realice una operación, el campo done se configurará como true.

Para sondear una operación de instancia de larga duración, invoca de manera repetida el método projects.instances.operations.get hasta que se realice la operación. Usa una retirada entre cada solicitud de sondeo. Por ejemplo, realiza sondeos cada 10 segundos.

Enumerar las operaciones de instancia de larga duración

Usa projects.instances.operations.list para enumerar las operaciones de instancia de larga duración.

  1. Haz clic en projects.instances.operations.list.
  2. En nombre, ingresa lo siguiente:

    projects/[PROJECT_ID]/instances/test-instance/operations
    
  3. Haz clic en Ejecutar. La respuesta contiene las operaciones de instancia de larga duración.

Cancelar una operación de instancia de larga duración

Usa projects.instances.operations.cancel para cancelar una operación de instancia de larga duración.

  1. Haz clic en projects.instances.operations.cancel.
  2. En nombre, ingresa el nombre de la operación de instancia de larga duración como se muestra en la respuesta de esa operación. Por ejemplo:

    projects/[PROJECT_ID]/instances/test-instance/operations/9af0cf8c1e123a2e
    

    (Usa el nombre de operación que recibiste en lugar de este valor). También puedes recuperar el nombre de la operación de instancia mediante la enumeración de las operaciones de instancia de larga duración.

  3. Haz clic en Ejecutar.

Borrar una operación de instancia de larga duración

Usa projects.instances.operations.delete para borrar una operación de instancia de larga duración.

  1. Haz clic en projects.instances.operations.delete.
  2. En nombre, ingresa el nombre de la operación de instancia de larga duración como se muestra en la respuesta de esa operación. Por ejemplo:

    projects/[PROJECT_ID]/instances/test-instance/operations/9af0cf8c1e123a2e
    

    (Usa el nombre de operación que recibiste en lugar de este valor). También puedes recuperar el nombre de la operación de instancia mediante la enumeración de las operaciones de instancia de larga duración.

  3. Haz clic en Ejecutar.