Replicação de dados no MySQL

Uma replicação ocorre quando um servidor envia seus dados — ou seus dados são puxados — de uma forma que outro servidor possa ter uma cópia fiel desses dados. A replicação ocorre por meio da transferência dos logs de operações que contém as transações e ações executadas pelo servidor master para o servidor slave. Atualmente os termos primário e secundário estão substituindo os termos mais antigos como master e slave.

Com o banco de dados MySQL é possível fazer replicação nativa, permitindo que os dados que estejam gravados no banco de dados principal (Master) sejam replicados para o servidor secundário (Slave), com a utilização dessa feature é possível manter seus dados sincronizados entre 2 servidores com um delay menor do que 1 segundo.

Essa topologia permite, por exemplo, que a aplicação faça a escrita no servidor Master e faça a leitura no servidor Slave, inclusive com a utilização de vários Servidores Slaves com o mesmo Servidor Master de origem, permitindo um crescimento horizontal da infraestrutura sem downtime, ou seja alta disponibilidade, performance e disponibilidade em numa solução prática.

Uma replicação, assim como um RAID (Redundant Array of Independent Disks), não é um backup, pois caso alguma alteração ou deleção indesejada aconteça nas tabelas do primeiro servidor, esse problema será replicado para o segundo. Apesar disso uma réplica é muito útil para alguns casos:

  • Caso o servidor primário apresente problemas, o secundário pode assumir mais rapidamente em relação ao tempo gasto para restaurar um backup;
  • As rotinas de backup ou extração de relatórios que normalmente oneram o primário podem ser feitas no secundário;
  • Pode fornecer replicação para outros servidores secundários abaixo dele, tirando a responsabilidade do servidor primário e agindo como master;
  • O servidor secundário pode servir como uma forma de fail over, atrasando propositalmente a sincronia e cancelando a replicação no caso de operações indesejadas no primário.

Como Funciona

No MySQL a replicação funciona da seguinte forma:

  • O servidor master executa uma escrita, antes desta escrita ser confirmada no disco, ela é salva em um arquivo conhecido como binary log.
  • O servidor slave conecta-se no master através de uma conexão comum e puxa as informações para sí, salvando-as em um arquivo conhecido como relay log.
  • Uma outra thread no servidor slave encarrega-se de ler as instruções no relay log e aplicá-las.

Para ativar a replicação alguns passos genéricos precisam ser feitos:

  • Definir um id para ambos os servidores
  • Ativar o log binário no master
  • Criar um usuário de replicação e definir suas permissões
  • Travar e descarregar a escrita das tabelas no master
  • Obter a posição e o nome do arquivo binário utilizado no momento
  • Fazer um dump ou backup dos dados
  • Liberar a trava nas tabelas
  • Restaurar esse dump no slave
  • Configurar e iniciar o processo de replicação no slave

Você gostou deste artigo?

Veja outros que temos:

Fique por dentro das novidades:

Conheça nosso blog, com diversos artigos técnicos

Fique por dentro das novidades relacionadas aos softwares open source usado em nossas soluções.
Imagem de uma pessoa na frente do computador

Conheça o mundo open source.

Faça nossos cursos starter, todos com certificado de conclusão!

Somos especialistas em implementar soluções em Banco de Dados 

Desde a definição de arquitetura, planejamento de capacidade até o mentoring da equipe.
plugins premium WordPress
Telegram logo
Whatsapp Logo

Temos um presente para você!

Você ganhou totalmente gratuito um curso da categoria Starter da 4Linux! São 9 opções de cursos para você escolher!

Cursos com 20h de conteúdo prático e certificado de conclusão para você dar uma upgrade na sua carreira.

Preencha o formulário abaixo e você receberá em até 24hs o email com os dados de acesso ao conteúdo: