Alta disponibilidade no Azure Cosmos DB for PostgreSQL
APLICA-SE AO: Azure Cosmos DB for PostgreSQL (da plataforma da extensão de dados Citus para PostgreSQL)
A alta disponibilidade (HA) minimiza o tempo de inatividade do banco de dados mantendo réplicas em espera de cada nó em um cluster. Se um nó falhar, o Azure Cosmos DB for PostgreSQL alterna as conexões de entrada do nó com falha para o modo em espera. O failover ocorre em alguns minutos e os nós promovidos sempre têm dados atualizados por meio de streaming de replicação síncrona do PostgreSQL.
Todos os nós primários em um cluster são provisionados em uma zona de disponibilidade para melhor latência entre os nós. A zona de disponibilidade preferencial permite que você coloque todos os nós do cluster na mesma zona de disponibilidade em que o aplicativo está implantado. Essa proximidade pode melhorar ainda mais o desempenho, diminuindo a latência do banco de dados do aplicativo. Os nós em espera são provisionados em outra zona de disponibilidade. O portal do Azure exibe a zona de disponibilidade de cada nó primário em um cluster. Você também pode verificar a zona de disponibilidade de cada nó em um cluster usando um dos métodos programáticos, como as APIs REST.
Mesmo sem HA habilitada, cada nó tem seu próprio LRS (armazenamento com redundância local) com três réplicas síncronas mantidas pelo serviço de Armazenamento do Azure. Se houver uma falha de réplica única, ela será detectada pelo serviço de Armazenamento do Azure e será criada de forma transparente. Para durabilidade do armazenamento LRS, consulte métricas nesta página.
Quando a HA está habilitada, o Azure Cosmos DB for PostgreSQL executa um nó em espera para cada nó primário no cluster. O primário e seu modo de espera usam a replicação síncrona do PostgreSQL. Essa replicação permite que os clientes tenham tempo de inatividade previsível se um nó primário falhar. Em resumo, nosso serviço detecta uma falha em nós primários e faz o failover para nós em espera sem perda de dados.
Afim de aproveitar a HA no nó de coordenador, os aplicativos de banco de dados precisam detectar e repetir conexões descartadas e transações com falha. O coordenador recém-promovido pode ser acessado com a mesma cadeia de conexão.
Estados de alta disponibilidade
A recuperação pode ser dividida em três estágios: detecção, failover e recuperação completa. O Azure Cosmos DB for PostgreSQL executa verificações de integridade periódicas em cada nó e, após quatro verificações com falha, determina que um nó está inoperante. Em seguida, o Azure Cosmos DB for PostgreSQL promove um modo de espera para o status do nó primário (failover) e cria uma nova espera. A replicação de streaming começa, atualizando o novo nó. Quando todos os dados forem replicados, o nó atingirá a recuperação completa.
O Azure Cosmos DB for PostgreSQL exibe seu estado de progresso de failover na página Visão geral para clusters no portal do Azure.
- Íntegra: a HA está habilitada e o nó é totalmente replicado para seu modo de espera.
- Failover em andamento: uma falha foi detectada no nó primário e um failover para em espera foi iniciado. Essa transição de estado passa para a Criação em espera quando o failover para o nó em espera é concluído e a espera se torna o novo primário.
- Criando nó em espera: o nó em espera anterior foi promovido para primário, e um novo nó em espera está sendo criado para ele. Quando o novo secundário estiver pronto, essa transição de estado passa para a Replicação em andamento.
- Replicação em andamento: o novo nó em espera é provisionado e a sincronização de dados está em andamento. Depois que todos os dados são replicados para a nova espera, a replicação síncrona será habilitada entre os nós primário e em espera, e o estado dos nós fará a transição de volta para Íntegro.
- Não: a alta disponibilidade não está habilitada neste nó.
Próximas etapas
- Saiba como habilitar a alta disponibilidade em um cluster.
- Saiba mais sobre zonas de disponibilidade no Azure Cosmos DB for PostgreSQL.