Como promover réplicas para migração regional ou recuperação de desastres

Nesta página, descrevemos como usar e promover réplicas entre regiões (réplicas criadas em uma região diferente da principal) para migração regional ou recuperação de desastres.

Visão geral

Há dois cenários comuns para a promoção de réplicas entre regiões:

  • Migração regional: execute uma migração planejada de um banco de dados para uma região diferente.
  • Recuperação de desastres: faça o failover de um banco de dados para outra região caso a região principal fique indisponível.

Ambos os casos de uso envolvem a configuração da replicação entre regiões e a promoção da réplica. A principal diferença entre eles é se a promoção da réplica é planejada (no caso da migração regional) ou não (o failover para a região da réplica é necessário para continuar as operações porque o principal ficou indisponível).

Migração regional

Use uma réplica entre regiões para migrar o banco de dados para outra região com tempo de inatividade mínimo. A ideia geral é criar uma réplica em outra região, aguardar até que a replicação chegue, promovê-la e direcionar os clientes para a instância recém-promovida.

As etapas envolvidas na promoção são as mesmas para promover uma réplica na região. Siga estas instruções para garantir que a instância recém-promovida tenha todas as transações que foram confirmadas na instância primária original. Depois de promover a réplica e verificar se a instância recém-promovida está funcionando, atualize todos os clientes de banco de dados para conectar à nova instância.

Recuperação de desastres

As réplicas entre regiões podem ser usadas como parte de um procedimento de recuperação de desastres. É possível promover uma réplica entre regiões para failover para outra região se a região principal ficar indisponível por um longo período.

Como verificar os critérios de failover

Como a replicação é assíncrona, quando ocorre uma interrupção regional e há uma tentativa de failover, algumas transações recentes que foram confirmadas na primária podem ser perdidas (não replicadas para a réplica). Sempre que uma instância primária se tornar indisponível, as etapas a seguir mostrarão (1) como determinar a quantidade de dados, se houver, que pode ter sido perdida no failover entre regiões e (2) como garantir que a réplica promovida reflita o maior número possível de gravações recentes.

Primeiro, verifique os valores Lag Bytes no painel de monitoramento. Quando há uma interrupção regional na região da instância principal, Lag Bytes é informado para a instância principal.

Em seguida, conecte-se à instância de réplica com um cliente do PostgreSQL seguindo as instruções na página de status de replicação. Consulte a guia Cliente do psql. Consulte as instruções referentes às métricas pg_catalog.pg_last_wal_receive_lsn() e pg_catalog.pg_last_wal_replay_lsn(). Verifique se a réplica processou todas as transações recebidas da principal. Isso garante que, quando promovida, a réplica reflete todas as transações recebidas antes da indisponibilidade da primária.

Como promover uma réplica de leitura

Após determinar que os critérios de alternância foram atendidos, é possível promover uma das réplicas para uma instância independente gravável. Pense no seguinte cenário:

  • A região A (us-central1) tem uma instância principal de alta disponibilidade (db-a-0)
  • A região B (us-west1) tem uma réplica entre regiões (db-b-1) de db-a-0
  • A região C (us-east1) tem uma réplica entre regiões (db-c-1) de db-a-0

É possível optar por promover db-b-1 na Região B para se tornar uma instância independente gravável.

Consulte Como promover uma réplica para mais instruções.

Como ativar a alta disponibilidade para a instância promovida

Quando promovidas, as réplicas de leitura são configuradas automaticamente com backups, mas não são configuradas como instâncias de alta disponibilidade (HA, na sigla em inglês). É possível ativar esse recurso após promover a réplica, assim como faria para qualquer instância que não seja réplica.

Como recriar réplicas extras

Se você promover uma réplica para se tornar uma instância principal, precisará recriar outras réplicas da antiga instância principal. Por exemplo, considere a configuração mencionada anteriormente e repetida aqui:

  • A região A (us-central1) tem uma instância principal de alta disponibilidade (db-a-0)
  • A região B (us-west1) tem uma réplica entre regiões (db-b-1) de db-a-0
  • A região C (us-east1) tem uma réplica entre regiões (db-c-1) de db-a-0

Se a instância principal (db-a-0) ficar indisponível, será possível promover a réplica na região B para se tornar a principal. Para ter outras réplicas nas regiões A e C, exclua as instâncias antigas (a antiga instância principal na região A e a réplica na C) e crie novas réplicas de leitura a partir da nova instância principal na região B.

A configuração resultante seria:

  • A região A (us-central1) agora tem uma réplica entre regiões (db-a-1)
  • A região B (us-west1) agora tem a instância principal (db-b-1).
  • A região C (us-east1) agora tem uma nova réplica entre regiões (db-c-2)