Testar uma instância principal para alta disponibilidade

O AlloyDB para PostgreSQL oferece tipos de instâncias regionais e zonais. Para garantir a alta disponibilidade (HA), cada instância primária regional do AlloyDB tem um nó ativo e um nó de espera, localizados em duas zonas diferentes. Se o nó ativo ficar indisponível por qualquer motivo, o AlloyDB vai promover automaticamente o nó de espera para se tornar o novo nó ativo.

É possível testar esse recurso de alta disponibilidade automática usando a injeção de falhas para forçar o nó ativo da instância principal a ficar off-line de maneira abrupta. Em seguida, o AlloyDB ativa o procedimento de emergência de alta disponibilidade, que verifica a integridade da instância primária e reatribui o nó em espera ao papel de nó ativo.

A injeção de falhas também inicia uma operação de longa duração que coloca o antigo nó ativo on-line novamente após um breve intervalo. Esse nó se torna o novo nó de espera da instância principal.

Para um método mais rápido de trocar os papéis ativo e em espera dos nós da instância primária, consulte Fazer failover de uma instância primária manualmente.

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.

Simular uma interrupção com uma injeção de falhas

Para testar a resiliência de alta disponibilidade da instância principal encerrando abruptamente o nó ativo, use o comando gcloud alloydb instances inject-fault. Depois que uma operação de longa duração é concluída, o AlloyDB restabelece o nó.

gcloud alloydb instances inject-fault INSTANCE_ID \
    --fault-type=stop-vm \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID
  • 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.