Pular para conteúdo

Alta Disponibilidade MySQL

Um banco MySQL sozinho é um ponto único de falha: um disco, um kernel panic ou uma manutenção não planejada derrubam a aplicação inteira. Alta disponibilidade (HA) significa manter mais de uma cópia do banco pronta para assumir, com promoção automática e sem intervenção manual no meio da madrugada.

Esta página trata de HA dentro do mesmo datacenter — a topologia mais comum e a que resolve a maior parte das falhas reais (hardware, host, rack, manutenção). Para distribuição entre regiões e redução de latência entre países, veja MySQL Multi-Região.

A InteSys implanta essa arquitetura das duas formas: em Kubernetes, com um operador cuidando do ciclo de vida do banco, ou em máquinas virtuais, com replicação clássica e um gerenciador de cluster. As duas rodam em br-sp-1 (Cirion SAO1) e br-sp-2 (Equinix SP3).


O que HA resolve — e o que não resolve

Risco Alta disponibilidade Backup Réplica em outra região
Falha de host, disco ou rack ✅ Resolve
Manutenção e upgrade sem downtime ✅ Resolve
DROP TABLE por engano ❌ Replica o erro ✅ Resolve ❌ Replica o erro
Corrupção lógica de dados ✅ Resolve (PITR)
Perda do datacenter inteiro ✅ Parcial ✅ Resolve

Réplica não é backup

A replicação copia tudo, inclusive o comando destrutivo. Todo cluster que implantamos tem backup completo mais binlog para point-in-time recovery, armazenado fora dos servidores do banco, com restauração testada periodicamente.

Os dois números que definem o projeto:

  • RPO (Recovery Point Objective) — quanto de dado é aceitável perder. Replicação assíncrona: segundos. Semi-síncrona: praticamente zero.
  • RTO (Recovery Time Objective) — quanto tempo até voltar. Failover automatizado: dezenas de segundos. Manual: o tempo de alguém acordar.

Topologia em Kubernetes

Para clientes que já rodam suas aplicações em Kubernetes, o MySQL fica no próprio cluster, gerenciado por um operador MySQL que trata provisionamento, replicação, failover e backup como estado declarativo.

Operador MySQL, StatefulSet com um primário e duas réplicas, service com read/write split, volumes persistentes e backup externo

O operador reconcilia a topologia desejada; a aplicação usa um único service, e o backup sai do cluster para armazenamento de objetos.

  • Topologia declarativa — número de réplicas, versão do MySQL e política de backup em manifesto, versionados em Git junto com a aplicação.
  • StatefulSet com volumes persistentes — cada instância tem seu volume, com snapshot de volume criptografado e retenção definida.
  • Anti-affinity obrigatória — um pod de banco por nó físico. Três réplicas no mesmo hipervisor não são alta disponibilidade.
  • Endpoint único com read/write split — escritas no primário, leituras distribuídas entre as réplicas.
  • Failover conduzido pelo operador — detecção, promoção e reconfiguração dos demais nós sem intervenção.
  • Backup e PITR fora do cluster, em armazenamento de objetos.

Banco em contêiner exige disciplina de storage

MySQL em Kubernetes só faz sentido com armazenamento persistente de baixa latência e política de backup testada. Rodamos essa topologia na infraestrutura InteSys, onde controlamos o storage e a rede do cluster — não é a mesma coisa que subir um StatefulSet em disco efêmero.


Topologia em máquinas virtuais

Quando a aplicação não é containerizada — ou quando o banco precisa ficar fora do cluster por decisão de risco — a mesma garantia é entregue com VMs dedicadas.

Aplicação, par de ProxySQL com VIP, primário e duas réplicas MySQL, e um gerenciador de cluster responsável por health check, promoção e fencing

Um par de ProxySQL responde por um VIP e esconde a topologia da aplicação; o gerenciador de cluster observa a saúde dos nós e conduz a promoção.

  • Três nós de banco — um primário e duas réplicas, em hosts físicos distintos.
  • Replicação com GTID — reposicionamento automático da réplica após a troca de primário, sem cálculo manual de coordenadas do binlog.
  • Camada de proxy em par — ProxySQL com VIP/keepalived, para que a aplicação nunca precise saber qual nó é o primário.
  • Gerenciador de clusterhealth check, quórum de decisão, promoção e fencing do nó antigo.
  • Backup e binlog fora dos nós de banco.

Kubernetes ou máquinas virtuais?

Critério Kubernetes Máquinas virtuais
Provisionamento de um novo cluster Minutos, declarativo Automatizado, porém mais lento
Reconstrução de réplica Automática Automatizada com scripts
Requisito de storage Volume persistente de baixa latência Disco local dedicado
Familiaridade da equipe do cliente Exige cultura Kubernetes Operação tradicional
Ajuste fino de kernel e I/O Limitado pelo nó Total
Indicado quando A aplicação já roda em Kubernetes Banco legado, alto I/O, ambiente sem cluster

Não há resposta única: a InteSys opera as duas topologias e a escolha costuma seguir onde a aplicação já vive.


Como funciona o failover

Sequência de failover: detecção, fencing do primário antigo, promoção da réplica mais avançada, redirecionamento do proxy e reconstrução do nó antigo

  1. Detecção — perda de contato com o primário confirmada por mais de um observador, para não reagir a uma falha de rede momentânea.
  2. Fencing — o primário antigo é isolado antes de qualquer promoção. Sem isso, dois nós aceitam escrita e o split-brain corrompe os dados.
  3. Promoção — a réplica mais avançada assume, após verificação de replication lag.
  4. Redirecionamento — o proxy passa a apontar para o novo primário; a aplicação continua usando o mesmo endereço.
  5. Reconstrução — o nó antigo volta ao cluster como réplica, automaticamente ou após inspeção, conforme a política acordada.

Split-brain é o risco real

Quase todo incidente grave em cluster de banco vem de dois nós se acharem primários ao mesmo tempo. Por isso trabalhamos sempre com número ímpar de votantes e fencing obrigatório antes da promoção.


Modos de replicação

Modo Confirmação do COMMIT RPO Custo
Assíncrona Imediata, o primário não espera a réplica Segundos de dados em risco Menor latência de escrita
Semi-síncrona Após ao menos uma réplica confirmar o recebimento Próximo de zero Alguns milissegundos por transação
Semi-síncrona entre br-sp-1 e br-sp-2 Idem, com a réplica na outra região Próximo de zero, sobrevive à perda de uma região Latência do enlace metropolitano

A combinação usual: uma réplica semi-síncrona para garantir o dado e uma réplica assíncrona para atender leitura e backup sem impactar o tempo de resposta das escritas.


Monitoramento que acompanha o cluster

Alta disponibilidade sem observabilidade é aposta. Todo cluster entregue inclui:

  • replication lag por réplica, com alerta antes de o atraso virar problema;
  • estado do gerenciador de cluster e histórico de promoções;
  • saturação de conexões e fila no proxy;
  • taxa de erro e latência de commit;
  • sucesso do backup e da restauração de teste — backup que nunca foi restaurado é hipótese, não garantia.

Soberania de dados

Todo o dado deste cluster fica no Brasil. As duas regiões da InteSys são brasileiras — br-sp-1 (Cirion SAO1), em Cotia/SP, e br-sp-2 (Equinix SP3), na região metropolitana de São Paulo — e o dado só sai do país se o cliente pedir.

  • Residência de dados no Brasil — nós primários, réplicas, arquivos de log de transação e backups ficam em datacenter brasileiro, em infraestrutura operada pela InteSys.
  • LGPD sem transferência internacional — na configuração padrão não existe transferência internacional de dados pessoais para documentar, nem base legal adicional a construir.
  • Jurisdição única — infraestrutura brasileira, contrato brasileiro e operação por equipe brasileira, sem a exposição a legislação estrangeira de acesso a dados que alcança provedores sediados fora do país.
  • Latência como consequência — manter o dado perto do usuário brasileiro é, ao mesmo tempo, requisito de conformidade e ganho de desempenho.
  • Saída de dados é decisão explícita do cliente — qualquer cópia fora do país existe apenas quando pedida, e apenas em volume criptografado.

Snapshot de volume criptografado

Além do backup completo com binlog para point-in-time recovery, o cluster em Kubernetes pode usar snapshots de volume (VolumeSnapshot via CSI): uma cópia do volume inteiro, tirada em segundos, sem varrer a base.

  • Snapshot consistente — o operador coordena o flush e o congelamento da escrita antes de disparar o snapshot, para que a restauração não dependa de recuperação de falha.
  • Sempre em volume criptografado — o dado é cifrado em repouso e o snapshot herda essa criptografia; a chave é gerenciada pela InteSys ou fornecida pelo cliente.
  • Cópia cifrada em trânsito — a replicação do snapshot para outro destino trafega criptografada e é armazenada cifrada no destino.
  • Retenção e restauração testada — política de retenção definida e restauração exercitada periodicamente; snapshot que nunca foi restaurado é hipótese, não backup.
  • Recuperação rápida — o snapshot devolve o volume inteiro em minutos; o backup completo mais binlog continua sendo o que permite voltar ao instante anterior ao DROP TABLE.
Destino do snapshot Quando escolher
br-sp-1 e br-sp-2 (Brasil) Padrão. Mantém a residência dos dados e o tratamento inteiramente sob a LGPD.
Outro país Isolamento geográfico do backup, exigência corporativa ou plano de continuidade que pede a cópia fora do território nacional. Passa a existir transferência internacional, documentada no desenho da solução.

O destino é escolha do cliente, não padrão da plataforma

Nenhum snapshot sai do Brasil por iniciativa nossa. A cópia em outro país é configurada apenas a pedido, com a base legal da transferência registrada junto com o desenho do cluster.


Como a InteSys implanta

  1. Dimensionamento — volume de dados, perfil de escrita, requisitos de RPO/RTO e janela de manutenção.
  2. Topologia — decisão entre Kubernetes e VMs, número de réplicas e modo de replicação.
  3. Provisionamento — nós distribuídos entre hosts físicos distintos, com anti-affinity e storage dedicado.
  4. Camada de acesso — ProxySQL ou service com read/write split, endpoint único para a aplicação.
  5. Backup e PITR — backup completo mais binlog em armazenamento de objetos, fora dos nós de banco.
  6. Teste de falha — derrubamos o primário em ambiente controlado e medimos RTO real antes de entrar em produção.
  7. Observabilidade e alertas — métricas, painéis e alertas ligados ao time de operação.
  8. Runbook — procedimento documentado para os casos em que a automação precisa de decisão humana.

Ponto de partida recomendado

Três nós, replicação semi-síncrona, proxy com endpoint único e backup com PITR fora do cluster. É a topologia que cobre a maioria das falhas reais sem transformar a operação em um projeto permanente. Fale com nossa equipe para dimensionar o cluster para a sua carga.


Próximos Passos