DBAtlas · Atlas de operações de banco de dados

Replicação GTID do MySQL (async / semi-sync)

MySQLNível: IntermediárioDuração: 45–90 min

Monta, a partir de servidores MySQL já instalados, uma replicação baseada em GTID com 1 source + N replicas: usuário de replicação, transferência dos dados existentes com o clone plugin ou mysqldump, SOURCE_AUTO_POSITION, TLS, semi-sync opcional, replicas em super_read_only, monitoramento de atraso e procedimento de failover manual. Ao final, você tem uma topologia monitorada que recebe as escritas na source e pode atender as leituras nas replicas. Se precisar de failover automático, veja o InnoDB Cluster; para a operação diária e as falhas de uma replicação já instalada, veja o guia de operação da replicação.

Topologia: 1 source + 1..5 replicas

Antes de começar

  • O MySQL … está instalado e rodando em todos os servidores na mesma versão secundária (guia DBAtlas Instalação do MySQL em servidor único), com binlog e GTID ativados. O root do sistema operacional consegue conectar com mysql sem senha.
  • server_id e server_uuid são diferentes em cada servidor. (Se os servidores foram criados por cópia/clonagem, o auto.cnf no datadir pode ser idêntico: apague-o e reinicie o serviço.)
  • Os servidores se alcançam pela porta … (…).
  • Relógios sincronizados (chrony). A medição de atraso e o PITR dependem de timestamps.
  • As replicas têm espaço livre igual ao volume de dados da source…, além de espaço para o arquivo de dump….
  • O volume de dados na source e a velocidade da rede são conhecidos (para estimar o tempo de transferência).
  • Há senhas fortes prontas para o usuário de replicação… e o usuário temporário de clone… (no mínimo 8 caracteres, maiúsculas e minúsculas, dígitos, caracteres especiais; sem ' nem \). Os passos pedem as senhas sem exibi-las na tela.
  • Sabe-se que a aplicação envia as escritas somente à source e (opcionalmente) as leituras às replicas; as replicas ficarão em super_read_only.

Fases do guia

  • Preparação (todos os servidores) — Verificar as identidades dos servidores · Liberar os outros nós no firewall · Adicionar as configurações de replicação (source) · Adicionar as configurações de replicação (…) · Reiniciar o MySQL
  • Preparação da source — Criar o usuário de replicação · Instalar os plugins de semi-sync · Ativar o semi-sync na source
  • Transferência dos dados para a replica (clone) — Instalar o plugin de clone · Criar o usuário temporário de clone · Clonar a source (…)
  • Transferência dos dados para a replica (mysqldump) — Gerar um dump consistente da source · Copiar o dump para as replicas · Carregar o dump (…)
  • Iniciar a replicação — Deixar a replica somente leitura (…) · Definir a source e iniciar a replicação (…)
  • Verificação — Ver as replicas conectadas na source · Escrita de teste (source) · Ler a escrita de teste na replica (…) · Remover o banco de teste
  • Monitoramento de atraso e status — Status da replicação e atraso (…)
  • Limpeza — Remover o usuário de clone · Apagar o arquivo de dump
  • Failover manual (perda da source) — Failover: verificar o estado da candidata · Failover: verificar o estado da candidata · Failover: promover a candidata a source · Failover: promover a candidata a source · Failover: conectar as outras replicas à nova source (…) · Failover: conectar as outras replicas à nova source (…) …
Abrir o plano passo a passo para o seu ambiente →