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:
Deixa o nó principal off-line.
Transforma o nó em espera no novo nó ativo.
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
- Acesse a página Clusters.
Na coluna Nome do recurso, clique em um nome de cluster.
Na seção Instâncias no cluster, abra o menu de ações da instância da instância primária.
Clique em Failover.
Na caixa de diálogo que aparece, insira o ID da instância.
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_IDSubstitua:
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:
Antes de realizar o failover, anote as zonas dos nós da instância principal.
Depois de executar o failover, observe as novas zonas dos dois nós.
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
No Google Cloud console, acesse a página Clusters.
Clique no nome de um cluster secundário na coluna Nome do recurso.
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.
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_IDSubstitua:
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.