Mudar o quórum de regiões duplas

Nesta página, descrevemos como verificar o status de integridade do Spanner quórum birregional e como alterar manualmente o quórum em caso de serviço interrupções.

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

Verificar o status de quórum de região birregional

É possível verificar o status do quórum de região birregional 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 Quórum, que mostra o local birregional, o status de quórum da instância:

    • Se o quórum for atingido nas duas regiões, o status será Birregional.

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

Usar o painel de insights do sistema

Depois de criar uma configuração birregional, será possível visualizar o Disponibilidade de quórum birregional no painel "Insights do sistema" no nível da instância.

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

Use a API REST do Monitoring ou CLI gcloud

Use a API REST do Monitoring ou CLI gcloud para verificar a integridade do quórum de região birregional.

API REST do Monitoring

Use a API projects.timeSeries.list do Monitoring para consultar a métrica Disponibilidade de quórum de região dupla 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 do horário atual.
  • END_TIME: o horário de término da consulta. Recomendamos usar o horário 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, sua região pode não estar em bom estado e pode ser necessário mudar o quórum de região dupla para região única.

CLI da gcloud

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

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

  2. Substitua as seguintes variáveis no script:

    • PROJECT: o ID do projeto.
    • INSTANCE: o ID da instância.
    • DATABASE: o ID do seu 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 que você escolher. Para mais informações, consulte Instale a Google Cloud CLI e configure a API Spanner.

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

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

Para fazer o failover manualmente se houver uma falha temporária regional ou um problema de partição 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 Disponibilidade de quórum birregional.

  5. Se a métrica de disponibilidade de quórum de região dupla mostrar que há uma interrupção em uma região, clique em Ícone do botão "Ativar o Cloud Shell" Ativar o Cloud Shell na parte de cima do console do Google Cloud.

    O Cloud Shell será aberto.

  6. Para alterar o quórum de região birregional para birregional, faça o seguinte: digite o seguinte comando que está na guia da CLI gcloud: gcloud spanner databases change-quorum: Para instruções detalhadas, consulte a guia gcloud.

CLI da gcloud

Usar o gcloud spanner databases change-quorum para alterar o quórum de região dupla 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: o identificador permanente do banco de dados.

  • INSTANCE_ID: identificador permanente da instância.

  • SERVING_LOCATION: a configuração de instância regional para a qual você quer fazer failover. Por exemplo, se asia-south1 (Mumbai) não está íntegra, e você quer fazer o failover para asia-south2 (Delhi), entrada asia-south2. Verifique se o SERVING_LOCATION é a região íntegra. Escolher uma região errada para o failover resulta no banco de dados e a indisponibilidade é irrecuperável antes de a região voltar a ficar on-line.

Sinalizações opcionais:

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

Para verificar o status da operação de mudança de quórum, 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

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

Para o failback manualmente depois que a região interrompida estiver íntegra ou após a rede problema de partição 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 Disponibilidade de quórum birregional.

  5. Na métrica de disponibilidade de quórum birregional, clique em Alterar quórum da região.

    O Cloud Shell é aberto.

  6. Para alterar o quórum de região birregional para birregional, faça o seguinte: digite o seguinte comando que está na guia da CLI gcloud: gcloud spanner databases change-quorum: Para instruções detalhadas, consulte a guia gcloud.

CLI da gcloud

Usar o gcloud spanner databases change-quorum para alterar o quórum de região birregional de região única para birregional.

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

Substitua:

  • DATABASE_ID: o 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 alteração de quórum, execute o gcloud spanner databases describe kubectl. O campo quorumInfo fornece informações sobre a operação.

gcloud spanner databases describe DATABASE_ID
    --instance=INSTANCE_ID

A seguir