A arquitetura de três data centers em duas regiões implanta uma instância do PolarDB-X em dois data centers primários dentro de uma região e um data center secundário em outra região. Essa topologia oferece alta disponibilidade entre regiões com objetivo de ponto de recuperação (RPO) igual a zero e atende aos requisitos de recuperação de desastres dos níveis 4 a 6 do setor financeiro.
Este tópico descreve o funcionamento da arquitetura, os mecanismos subjacentes e as operações necessárias para gerenciá-la.
Versão compatível
Essa arquitetura requer o Apsara Stack DBStack V1.2.1 ou posterior.
Níveis de recuperação de desastres
|
Nível |
Objetivo de tempo de recuperação (RTO) |
RPO |
Requisito de implantação |
|
Nível 4 |
≤ 30 minutos |
0 |
Recuperação de desastres entre zonas ou geográfica |
|
Nível 5 |
≤ 15 minutos |
0 |
Recuperação de desastres geográfica, com pelo menos uma réplica na região remota |
|
Nível 6 |
≤ 1 minuto |
0 |
Recuperação de desastres geográfica, com pelo menos duas réplicas na região remota |
O PolarDB-X utiliza cinco réplicas baseadas no protocolo de consenso majoritário Paxos para alcançar RPO = 0 entre regiões. Se os data centers primários falharem completamente, a instância secundária remota restaurará o serviço dentro das restrições de RTO indicadas acima.
Como funciona
Uma instância do PolarDB-X nessa topologia executa cinco réplicas: quatro distribuídas entre dois data centers primários em uma região e uma em um data center secundário em outra região. A sincronização por maioria exige respostas de pelo menos três réplicas.
Nos data centers primários, as quatro réplicas se comunicam por redes locais de baixa latência. A sincronização por maioria geralmente é concluída em aproximadamente 1 milissegundo. A latência de rede entre os data centers primário e secundário é de cerca de 30 milissegundos, valor típico para conexões entre regiões em setores como o de serviços financeiros.
Quatro mecanismos garantem o funcionamento confiável dessa arquitetura:
Mecanismo de eleição ponderada: Mantém as eleições de líder locais para evitar latência desnecessária entre regiões.
Ajuste dinâmico de réplicas: Restabelece a sincronização por maioria com baixa latência após a falha de um data center.
Inicialização forçada de réplica única: Permite que o data center secundário atenda solicitações quando ambos os data centers primários falham.
Instância secundária remota: Fornece recuperação de desastres geográfica para atender aos requisitos de RTO.
Cenários de falha e respostas
|
Cenário de falha |
Escopo |
Resposta |
|
Falha da réplica líder |
Data centers primários |
O sistema aciona uma nova eleição de líder. Um follower no mesmo data center tem prioridade para minimizar o redirecionamento de tráfego. |
|
Falha da réplica follower |
Data centers primários |
Nenhuma ação necessária. |
|
Falha da réplica follower |
Data center secundário |
Nenhuma ação necessária. |
|
Falha de data center primário |
Um dos dois data centers primários |
O sistema rebaixa dinamicamente as cinco réplicas para três. Pode ocorrer sincronização entre regiões. |
|
Falha do data center secundário |
— |
Quatro réplicas permanecem nos data centers primários. O desempenho do protocolo Paxos não é afetado. |
|
Falha de ambos os data centers primários |
Falha regional |
Uma réplica permanece no data center secundário. Execute |
|
Falha do data center secundário |
Falha regional |
Nenhuma ação necessária. |
Mecanismos principais
Mecanismo de eleição ponderada
O PolarDB-X aplica um mecanismo de eleição ponderada para que as reeleições de líder prefiram réplicas no mesmo data center e evitem latência desnecessária entre regiões.
Pesos de eleição das réplicas:
| Data center | Função da réplica | Peso de eleição |
|---|---|---|
| Data Center Primário 1 | Leader | 9 |
| Follower | 7 | |
| Data Center Primário 2 | Follower | 5 |
| Follower | 3 | |
| Data Center Secundário | Follower | 1 |
Esse mecanismo tem duas partes:
Eleição ponderada otimista: Cada nó aguarda um atraso calculado antes de iniciar uma eleição de líder. O atraso é inversamente proporcional ao peso do nó; portanto, nós com maior peso iniciam as eleições primeiro.
Eleição ponderada obrigatória: Quando um novo líder detecta que não possui o maior peso entre todos os nós, ele entra em uma fase de abdicação em vez de aceitar gravações imediatamente. Durante essa fase, o nó envia sinais de heartbeat (por exemplo, a cada 1 ou 2 segundos). Se um nó com peso maior responder antes do fim da fase de abdicação, a liderança será transferida para esse nó.
Por exemplo, se o líder no Data Center Primário 1 falhar, o follower no mesmo data center (peso 7) terá prioridade sobre todos os outros e manterá o tráfego local.
Ajuste dinâmico da quantidade de réplicas
Quando um data center primário falha e restam apenas três réplicas, a sincronização por maioria deve incluir a réplica do data center secundário, o que adiciona aproximadamente 30 milissegundos de latência entre regiões. Utilize os comandos a seguir para ajustar a quantidade de réplicas e gerenciar essa compensação:
|
Transição |
Comando |
Observações |
|
De cinco para três réplicas |
|
Converte dois followers em learners |
|
De três para cinco réplicas |
|
Converte dois learners de volta para followers; certifique-se de que os logs de replicação estejam atualizados antes da atualização |
|
De uma para três réplicas |
|
Adiciona novas réplicas como learners; elas são promovidas automaticamente a followers quando seus logs estiverem atualizados |
Inicialização forçada de réplica única
Se ambos os data centers primários falharem, a única réplica restante no data center secundário não conseguirá atender sozinha ao requisito de consenso majoritário. Execute force_single_mode para forçar o sistema a entrar no modo de réplica única e colocar todas as réplicas follower em segundo plano, permitindo que a réplica restante atenda às solicitações.
Após a recuperação dos data centers primários, o PolarDB-X reconstrói o sistema distribuído de forma incremental:
Adicione réplicas de uma para três: execute
add_follower.Adicione réplicas de três para cinco: execute
upgrade_learner.
Instância secundária remota
Em sistemas de banco de dados distribuídos, o progresso da replicação pode variar entre grupos Paxos durante uma transação distribuída. Sem coordenação, dados de uma transação parcialmente replicada poderiam aparecer na instância secundária e causar inconsistência transacional.
O PolarDB-X resolve isso usando nós de log de Change Data Capture (CDC) implantados na região remota. Esses nós classificam e reorganizam as transações distribuídas para garantir replicação atômica: nenhuma transação é confirmada parcialmente quando os dados são movidos da instância primária para a secundária. Essa garantia vale tanto para testes rotineiros de recuperação de desastres quanto para failovers reais.
Dois pontos de projeto regem o funcionamento da replicação e do failover:
Replicação da instância primária: A instância primária usa o protocolo Paxos entre regiões e exige respostas de pelo menos três réplicas. Como quatro réplicas estão nos data centers primários, a sincronização por maioria normalmente é concluída localmente. A réplica remota no data center secundário responde de forma assíncrona; portanto, a latência entre regiões não afeta o desempenho de gravação da instância primária.
Replicação da instância secundária: A instância secundária está na região remota. Os nós de log CDC replicam dados quase em tempo real entre as regiões. Pode haver latência de replicação, mas a replicação atômica de transações garante que a instância secundária nunca reflita uma transação parcialmente confirmada.
Operações e manutenção (O&M) comuns
Referência rápida: cenário para comando
|
Cenário |
Ação |
|
Falha de um data center primário |
Execute |
|
Recuperação dos data centers primários |
Execute |
|
Falha de ambos os data centers primários |
Execute |
|
Recuperação do data center secundário após falha regional |
Execute |
Crie uma instância com esta topologia
Ao criar uma instância do PolarDB-X, defina o parâmetro Topology como Three Data Centers Across Two Regions.
Visualize a topologia da instância
Na página Basic Information da instância, localize a seção Topology Information para ver os detalhes de zona de todos os recursos.
Executar um failover
Antes de começar
Agende o failover durante períodos de baixo tráfego para reduzir o impacto no desempenho de gravação.
Na página Basic Information, verifique a topologia atual e confirme qual data center designar como zona primária.
Etapas
Faça login no console do PolarDB for Xscale.
Na barra de navegação superior, selecione a região onde a instância de destino está localizada.
Na página Instances, clique na aba PolarDB-X 2.0.
Localize a instância de destino e clique em seu ID.
Na página Basic Information, clique em Specify Primary Zone no canto superior direito da seção Topology Information.
Na caixa de diálogo Specify Primary Zone, defina os parâmetros Data Center, Primary Zone e Switch Mode.
Clique em OK.
Após o failover
Verifique se a seção Topology Information reflete a nova zona primária antes de retomar o tráfego normal de gravação.