Mudar o quórum birregional

Nesta página, descrevemos como verificar o status de integridade do quorum de duas regiões do Spanner e como mudar manualmente o quorum em caso de interrupções no serviço.

Para mais informações sobre regiões duplas, consulte as Configurações de instâncias birregionais do Spanner.

Verificar o status do quórum birregional

É possível verificar o status do seu quorum de duas regiões das seguintes maneiras:

Na página "Visão geral do banco de dados"

  1. Acesse a página Instâncias do Spanner no console do Google Cloud .

    Acessar a página "Instâncias"

  2. Clique no nome da instância que está em uma configuração de duas regiões.

  3. Clique no nome do banco de dados.

  4. Em "Visão geral", procure a linha Quorum, que mostra o status de quórum de duas regiões da sua instância:

    • Se o quórum for atendido nas duas regiões, o status vai mostrar Birregional.

    • Se um failover manual ou gerenciado pelo Google tiver sido realizado, o nome da região de exibição vai aparecer (por exemplo, asia-south1).

Usar o painel "Insights do sistema"

Depois de criar uma configuração de duas regiões, é possível conferir a métrica Linha do tempo de integridade do quorum de duas regiões no painel "Insights do sistema no nível da instância".

Para mais informações, consulte Visualizar o painel de insights do sistema.

Usar a API REST do Monitoring ou a CLI gcloud

Use a API REST do Monitoring ou a CLI gcloud para verificar a integridade do seu quorum de duas regiões.

API REST do Monitoring

Use a API Monitoring projects.timeSeries.list para consultar o cronograma de integridade do quórum birregional e verificar se uma região está íntegra em um determinado momento.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: o ID do projeto.
  • DUAL_REGION_LOCATION: o local da região na região dupla que você quer verificar.
  • START_TIME: o horário de início da consulta. Recomendamos usar 5 minutos antes da hora atual.
  • END_TIME: o horário de término da consulta. Recomendamos usar a hora atual.

Método HTTP e URL:

GET https://monitoring.googleapis.com/v3/projects/PROJECT_ID/timeSeries

Corpo JSON da solicitação:

{
  "name": "PROJECT_ID",
  "aggregation.alignmentPeriod": "60s",
  "aggregation.crossSeriesReducer": "REDUCE_FRACTION_TRUE",
  "aggregation.groupByFields": "resource.labels.location",
  "aggregation.perSeriesAligner": "ALIGN_NEXT_OLDER",
  "filter": "metric.labels.quorum_availability = "Healthy" AND metric.type = "spanner.googleapis.com/instance/dual_region_quorum_availability" AND resource.labels.location = "DUAL_REGION_LOCATION"",
  "interval.startTime": "START_TIME",
  "interval.endTime": "END_TIME"
}

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

{
  "timeSeries": [
    {
      "metric": {
        "type": "spanner.googleapis.com/instance/dual_region_quorum_availability"
      },
      "resource": {
        "type": "spanner_instance",
        "labels": {
          "project_id": "spanner-project",
          "location": "australia-southeast1"
        }
      },
      "metricKind": "GAUGE",
      "valueType": "DOUBLE",
      "points": [
        {
          "interval": {
            "startTime": "2024-07-11T05:41:23Z",
            "endTime": "2024-07-11T05:41:23Z"
          },
          "value": {
            "doubleValue": 1
          }
        }
      ]
    }
  ],
  "unit": "10^2.%"
}

Se você não encontrar uma resposta semelhante, talvez sua região não esteja íntegra e seja necessário mudar o quórum birregional de birregional para região única.

CLI da gcloud

  1. Faça o download do arquivo dual-region-quorum-health-check-script.sh.

    Esse script bash verifica a integridade da sua região única. Se a região estiver íntegra, o script vai executar o comando gcloud spanner databases change-quorum para fazer failover manual do quórum birregional de birregional para região única.

  2. Substitua as seguintes variáveis no script:

    • PROJECT: o ID do projeto.
    • INSTANCE: o ID da sua instância.
    • DATABASE: o ID do banco de dados.
    • SERVING_LOCATION: o local da região na região dupla que você quer verificar.
  3. Execute o script no ambiente de desenvolvimento de sua escolha. Para mais informações, consulte Instalar a CLI gcloud e configurar a API Spanner.

  4. Faça um failback manual se a região não estiver íntegra e tiver ocorrido um failover.

Mudar o quórum birregional de birregional para região única (failover)

Para fazer failover manual se houver uma interrupção regional ou um problema de particionamento de rede:

Console do Google Cloud

  1. Acesse a página Instâncias do Spanner no console do Google Cloud .

    Acessar a página "Instâncias"

  2. Clique no nome da instância que está em uma configuração de duas regiões.

  3. Clique em Insights do sistema no menu de navegação.

  4. Encontre a métrica Cronograma de integridade do quórum birregional.

  5. Se o cronograma de integridade do quórum birregional mostrar que há uma interrupção em uma região, clique em Mudar quórum da região.

    O Cloud Shell é aberto.

  6. Para mudar o quorum de duas regiões para uma única região, insira o seguinte comando encontrado na guia da CLI gcloud: gcloud spanner databases change-quorum. Para instruções detalhadas, consulte a guia gcloud.

CLI da gcloud

Use o comando gcloud spanner databases change-quorum para mudar o quorum birregional de birregional para uma única região.

gcloud spanner databases change-quorum
    DATABASE_ID --instance=INSTANCE_ID
    --single-region --serving-location=SERVING_LOCATION
    [--etag=ETAG]

Substitua:

  • DATABASE_ID: identificador permanente do banco de dados.

  • INSTANCE_ID: identificador permanente da instância.

  • SERVING_LOCATION: a configuração da instância regional para a qual você quer fazer failover. Por exemplo, se asia-south1 (Mumbai) estiver com problemas e você quiser fazer failover para asia-south2 (Delhi), insira asia-south2. Verifique se o SERVING_LOCATION é a região íntegra. Escolher uma região errada para o failover resulta na indisponibilidade do banco de dados, que não pode ser recuperada até que a região volte a ficar on-line.

Sinalizações opcionais:

  • --etag=ETAG: o argumento ETAG pode ser usado para proteção contra reprodução.

Para verificar o status da operação de mudança de quorum, execute o comando gcloud spanner databases describe. O campo quorumInfo fornece informações sobre a operação.

gcloud spanner databases describe DATABASE_ID
    --instance=INSTANCE_ID

Mudar o quórum birregional de região única para birregional (failback)

Para fazer failback manual depois que a região afetada estiver íntegra ou depois que o problema de partição de rede for resolvido:

Console do Google Cloud

  1. Acesse a página Instâncias do Spanner no console do Google Cloud .

    Acessar a página "Instâncias"

  2. Clique no nome da instância que está em uma configuração de duas regiões.

  3. Clique em Insights do sistema no menu de navegação.

  4. Encontre a métrica Cronograma de integridade do quórum birregional.

  5. No cronograma de integridade do quórum birregional, clique em Mudar quórum da região.

    O Cloud Shell é aberto.

  6. Para mudar o quorum de região dupla de uma única região para uma região dupla, insira o seguinte comando encontrado na guia da CLI gcloud: gcloud spanner databases change-quorum. Para instruções detalhadas, consulte a guia gcloud.

CLI da gcloud

Use o comando gcloud spanner databases change-quorum para mudar o quorum birregional de uma única região para duas.

gcloud spanner databases change-quorum
    DATABASE_ID --instance=INSTANCE_ID
    --dual-region
    [--etag=ETAG]

Substitua:

  • DATABASE_ID: identificador permanente do banco de dados.

  • INSTANCE_ID: identificador permanente da instância.

Sinalizações opcionais:

  • --etag=ETAG: o argumento ETAG pode ser usado para controle de simultaneidade otimista.

Para verificar o status da operação de mudança de quorum, execute o comando gcloud spanner databases describe. O campo quorumInfo fornece informações sobre a operação.

gcloud spanner databases describe DATABASE_ID
    --instance=INSTANCE_ID

A seguir