Fazer failover manual de uma instância principal ou secundária

Para testar a resiliência do aplicativo, reequilibrar zonas ou se recuperar de problemas de desempenho no nível do nó, é possível fazer o failover manual de uma instância principal ou secundária do AlloyDB para PostgreSQL para o nó em espera na mesma região.

Os casos de uso comuns para acionar um failover manual incluem:

  • Rebalanceamento de zona: troca dos nós de volta para as zonas preferenciais depois que um failover automático moveu o nó ativo para a zona de espera.
  • Solução de problemas: failover para o nó em espera se o nó ativo tiver problemas de desempenho que não acionam um failover automático.
  • Manutenção controlada: iniciar o failover manualmente antes de uma janela de manutenção para controlar quando ocorre a breve interrupção da conexão.

Alta disponibilidade em instâncias primárias e secundárias

O AlloyDB para PostgreSQL oferece alta disponibilidade em instâncias primárias e secundárias.

Alta disponibilidade em instâncias primárias

Para garantir alta disponibilidade (HA), cada instância primária do AlloyDB tem um nó ativo e um nó de espera, que estão localizados em zonas diferentes. Se o nó ativo ficar indisponível, o AlloyDB vai fazer o failover da instância principal para o nó em espera, tornando-o o novo nó ativo.

É possível fazer o failover manual da instância principal para o nó de espera a qualquer momento, mesmo que o nó ativo esteja funcionando como esperado. Quando você inicia um failover manual, o AlloyDB faz o seguinte:

  1. Deixa o nó principal off-line.

  2. Transforma o nó em espera no novo nó ativo.

  3. Reativa o nó ativo anterior como o novo nó de espera.

O failover manual troca os papéis ativo e em espera dos nós da instância principal. É possível acionar um failover manual sempre que você quiser que essa troca ocorra.

Por exemplo, imagine que você tenha uma instância principal com nós ativos e em espera nas zonas us-central1-a e us-central1-b, respectivamente. Uma interrupção em us-central1-a aciona um failover automático, resultando na zona us-central1-b que hospeda o nó ativo. Se você preferir manter o nó ativo na zona us-central1-a, inicie um failover manual para que o AlloyDB troque os nós da instância primária de volta para os locais anteriores à interrupção.

Durante as operações de manutenção, uma instância principal de alta disponibilidade e uma instância básica normalmente têm um tempo de inatividade mínimo de menos de um segundo. Como o failover manual é um procedimento intencional e controlado, ele não se destina a simular falhas inesperadas de hardware ou de rede. Em vez disso, é possível testar a alta disponibilidade da instância principal usando a injeção de falhas.

Alta disponibilidade em instâncias secundárias

O AlloyDB oferece alta disponibilidade em instâncias secundárias para dar suporte à recuperação de desastres e reduzir o tempo de inatividade quando uma instância secundária fica indisponível.

Por padrão, a alta disponibilidade é configurada em uma instância secundária.

Uma instância secundária do AlloyDB inclui os seguintes nós:

  • Um nó secundário ativo, que responde a solicitações
  • Um nó secundário em espera

Os nós ativo e em espera estão localizados em duas zonas diferentes de uma região. Se o AlloyDB detectar a indisponibilidade do nó ativo, ele fará o failover para o nó em espera, que passará a atuar como o novo nó ativo. Seus dados são redirecionados para o novo nó ativo. Esse processo é chamado de failover.

Antes de começar

  • O projeto do Google Cloud que você está usando precisa ter sido ativado para acessar o AlloyDB.
  • Você precisa ter um destes papéis do IAM no Google Cloud projeto que está sendo usado:
    • roles/alloydb.admin (o papel predefinido do IAM de Admin do AlloyDB)
    • roles/owner (o papel básico do IAM de Proprietário)
    • roles/editor (o papel básico do IAM de Editor)

    Se você não tiver nenhum desses papéis, entre em contato com o Administrador da organização para solicitar o acesso.

Executar um failover manual em uma instância principal

Console

  1. Acesse a página Clusters.

Acessar Clusters

  1. Na coluna Nome do recurso, clique em um nome de cluster.

  2. Na seção Instâncias no cluster, abra o menu de ações da instância da instância primária.

  3. Clique em Failover.

  4. Na caixa de diálogo que aparece, insira o ID da instância.

  5. Clique em Acionar failover.

gcloud

Execute o comando gcloud alloydb instances failover:

gcloud alloydb instances failover INSTANCE_ID \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID

Substitua:

  • INSTANCE_ID: o ID da instância.
  • REGION_ID: a região em que a instância está localizada.
  • CLUSTER_ID: o ID do cluster em que a instância está localizada.
  • PROJECT_ID: o ID do projeto em que o cluster está localizado.

Para confirmar se o failover funcionou, siga estas etapas:

  1. Antes de realizar o failover, anote as zonas dos nós da instância principal.

  2. Depois de executar o failover, observe as novas zonas dos dois nós.

  3. Confirme se as zonas dos nós ativo e em espera trocaram de lugar.

Executar um failover manual em uma instância secundária

O failover manual de uma instância secundária é semelhante às etapas seguidas para fazer o failover manual da instância principal.

Para fazer o failover de um cluster secundário manualmente, siga estas etapas:

Console

  1. No Google Cloud console, acesse a página Clusters.

    Acessar Clusters

  2. Clique no nome de um cluster secundário na coluna Nome do recurso.

  3. Na página Visão geral, acesse a seção Instâncias no seu cluster, escolha a instância secundária e clique em Failover.

  4. Na caixa de diálogo que aparece, insira o ID da instância e clique em Acionar failover.

gcloud

Para usar a CLI gcloud, você pode instalar e inicializar a Google Cloud CLI ou usar o Cloud Shell.

Use o comando gcloud alloydb instances failover para forçar uma instância secundária a fazer failover do modo de espera.

 gcloud alloydb instances failover SECONDARY_INSTANCE_ID \
 --cluster=SECONDARY_CLUSTER_ID \
 --region=REGION_ID \
 --project=PROJECT_ID

Substitua:

  • SECONDARY_INSTANCE_ID: o ID da instância secundária que você quer que faça o failover.
  • SECONDARY_CLUSTER_ID: o ID do cluster secundário ao qual a instância secundária está associada.
  • REGION_ID: o ID da região da instância secundária, por exemplo, us-central1.
  • PROJECT_ID: o ID do projeto do cluster secundário.

A seguir