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.