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 o mundo open source.
Faça nossos cursos starter, todos com certificado de conclusão!
