Como gerenciar operações de longa duração

Nesta página, você aprenderá a gerenciar o ciclo de vida de uma operação de longa duração do Cloud Spanner usando APIs de operações.

Operações de longa duração são chamadas de método que podem demorar para serem concluídas. O Spanner cria operações de longa duração para várias ações de instância, banco de dados e backup. Um exemplo é o método para restaurar um banco de dados, projects.instances.databases.restore. Quando você restaura um banco de dados, o serviço do Spanner cria uma operação de longa duração para rastrear o progresso da restauração. O Spanner fornece APIs de operações que permitem verificar o status de operações de longa duração. Você também pode listar e cancelar operações de longa duração, bem como excluir operações de instâncias de longa duração.

Nesta página, você aprende a gerenciar operações de longa duração com a API REST. Também é possível gerenciar operações de longa duração com:

Gerencie as operações de longa duração do Spanner usando estes métodos:

Ação Operações de banco de dados de longa duração Operações de backup de longa duração Operações de instância de longa duração
Cancelar uma operação de longa duração cancel cancel cancel
Excluir uma operação de longa duração Não compatível Não compatível delete
Ver o status de uma operação de longa duração get get get
Listar operações de longa duração list list list

Operações de banco de dados

Veja abaixo as operações de banco de dados de longa duração.

Ver o status de uma operação de banco de dados de longa duração

Use projects.instances.databases.operations.get para obter o status de uma operação de banco de dados de longa duração.

Como exemplo, esta é uma resposta 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"
  }
}

O valor name na parte superior da resposta mostra que o serviço do Spanner criou uma operação de banco de dados de longa duração chamada projects/[PROJECT_ID]/instances/test-instance/databases/example-db/operations/_auto_1492721321097206.

Para ver o status da operação de banco de dados de longa duração:

  1. Clique em projects.instances.databases.operations.get.
  2. Para name, insira o nome da operação de banco de dados de longa duração, conforme mostrado na resposta para projects.instances.databases.create ou projects.instances.databases.updateDdl. Exemplo:

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

    Use o nome da operação que você recebeu em vez desse valor. Também é possível recuperar o nome da operação do banco de dados listando as operações de banco de dados de longa execução.

  3. Clique em Executar e veja a resposta. Quando uma operação for concluída, o campo done será definido como true.

Para pesquisar uma operação de banco de dados de longa duração, invoque repetidamente projects.instances.databases.operations.get até que a operação seja concluída. Use um recuo entre cada solicitação de votação. Por exemplo, faça pesquisas a cada 10 segundos.

Listar operações de banco de dados de longa duração

Use projects.instances.databases.operations.list para listar operações de banco de dados de longa duração.

  1. Clique em projects.instances.databases.operations.list.
  2. Para o nome, insira:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db/operations
    
  3. Clique em Executar. A resposta contém as operações de banco de dados de longa duração.

Cancelar uma operação de banco de dados de longa duração

Use projects.instances.databases.operations.cancel para cancelar uma operação de banco de dados de longa duração.

  1. Clique em projects.instances.databases.operations.cancel.
  2. Para name, insira o nome da operação do banco de dados de longa duração, como mostrado na resposta de operação do banco de dados de longa duração. Exemplo:

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

    Use o nome da operação que você recebeu em vez desse valor. Também é possível recuperar o nome da operação do banco de dados listando as operações de banco de dados de longa execução.

  3. Clique em Execute.

Operações de backup

Veja a seguir as operações de backup de longa duração.

Veja o status de uma operação de backup de longa duração

Use projects.instances.backups.operations.get para obter o status de uma operação de backup de longa duração.

Como exemplo, esta é uma resposta 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"
  }
}

O valor name na parte superior da resposta mostra que o serviço do Spanner criou uma operação de backup de longa duração chamada projects/[PROJECT_ID]/instances/test-instance/backups/example-db/operations/_auto_op_0cf69250b487c2f7.

Para ver o status da operação de backup de longa duração, siga as etapas a seguir:

  1. Clique em projects.instances.backups.operations.get.
  2. Para name, insira o nome da operação de backup de longa duração, como mostrado na resposta para projects.instances.backups.create. Exemplo:

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

    Use o nome da operação que você recebeu em vez desse valor. Também é possível recuperar o nome da operação de backup. Para isso, liste operações de backup de longa duração.

  3. Clique em Executar e veja a resposta. Quando uma operação for concluída, o campo done será definido como true.

Para pesquisar uma operação de backup de longa duração, invoque o método repetidamente projects.instances.backups.operations.get até que a operação seja concluída. Use um recuo entre cada solicitação de votação. Por exemplo, faça pesquisas a cada 10 segundos.

Listar operações de backup de longa duração

Use projects.instances.backups.operations.list para listar as operações em um único backup ou projects.instances.backupOperations.list para listar todas as operações de backup na instância.

  1. Clique em projects.instances.backups.operations.list.
  2. Para o nome, insira:

    projects/[PROJECT_ID]/instances/test-instance/backups/example-db-backup-4/operations
    
  3. Clique em Execute. A resposta contém as operações de longa duração.

Cancelar uma operação de backup de longa duração

Use projects.instances.backups.operations.cancel para cancelar uma operação de backup de longa duração.

  1. Clique em projects.instances.backups.operations.cancel.
  2. Em name, insira o nome da operação de backup de longa duração, conforme mostrado na resposta dessa operação. Exemplo:

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

    Use o nome da operação que você recebeu em vez desse valor. Também é possível recuperar o nome da operação de backup. Para isso, liste operações de backup de longa duração.

  3. Clique em Execute.

Operações de instância

Veja a seguir as operações de instâncias de longa duração.

Ver o status de uma operação de instância de longa duração

Use projects.instances.operations.get para ver o status de uma operação de instância de longa duração.

Como exemplo, esta é uma resposta 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"
  }
}

O valor name na parte superior da resposta mostra que o serviço do Spanner criou uma operação de instância de longa duração chamada projects/[PROJECT_ID]/instances/test-instance/operations/9af0cf8c1e123a2e.

Para ver o status da operação de instância de longa duração:

  1. Clique em projects.instances.operations.get.
  2. Para name, insira o nome da operação de instância de longa duração, conforme mostrado na resposta para projects.instances.create ou projects.instances.patch. Exemplo:

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

    Use o nome da operação que você recebeu em vez desse valor. Também é possível recuperar o nome da operação de instância listando as operações de instância de longa execução.

  3. Clique em Executar e veja a resposta. Quando uma operação for concluída, o campo done será definido como true.

Para pesquisar uma operação de instância de longa duração, invoque repetidamente projects.instances.operations.get até que a operação seja concluída. Use um recuo entre cada solicitação de votação. Por exemplo, faça pesquisas a cada 10 segundos.

Listar operações de instância de longa duração

Use projects.instances.operations.list para listar operações de instância de longa duração.

  1. Clique em projects.instances.operations.list.
  2. Para o nome, insira:

    projects/[PROJECT_ID]/instances/test-instance/operations
    
  3. Clique em Executar. A resposta contém as operações de instância de longa duração.

Cancelar uma operação de instância de longa duração

Use projects.instances.operations.cancel para cancelar uma operação de instância de longa duração.

  1. Clique em projects.instances.operations.cancel.
  2. Para name, insira o nome da operação de instância de longa duração, como mostrado na resposta da operação de instância de longa duração. Exemplo:

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

    Use o nome da operação que você recebeu em vez desse valor. Também é possível recuperar o nome da operação de instância listando as operações de instância de longa execução.

  3. Clique em Executar.

Excluir uma operação de instância de longa duração

Use projects.instances.operations.delete para excluir uma operação de instância de longa duração.

  1. Clique em projects.instances.operations.delete.
  2. Para name, insira o nome da operação de instância de longa duração, como mostrado na resposta da operação de instância de longa duração. Exemplo:

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

    Use o nome da operação que você recebeu em vez desse valor. Também é possível recuperar o nome da operação de instância listando as operações de instância de longa execução.

  3. Clique em Executar.