Replicação de dados no MySQL
O objetivo de um mecanismo de replicação de dados é permitir a
manutenção de de várias cópias idênticas de um mesmo dado em vários
servidores de banco de dados (SGBD). Os principais benefícios da
replicação de dados é a redundância, o que torna o sistema menos sensível
as falhas, a possibilidade de um balanceamento de carga do sistema, já que
o acesso pode ser distribuídos entre as réplicas, e finalmente, ter-se um
backup online dos dados, já que todos as replicas estariam sincronizadas.
Este artigo, apresenta uma introdução ao mecanismo de replicação do MySQL,
bem como as configurações básicas do SGBD para a realização desta
tarefa.
O MySQL permite um tipo de replicação conhecido como
Master-Slave, neste caso temos um servidor MySQL atuando como Master e um
ou mais servidores MySQL atuando como Slaves. O servidor Master grava em
um log binário de alterações todos os comandos de atualização da base de
dados. Os slaves por sua vez se conectam ao master, lêem o arquivo de log
binário e executam os comandos encontrados neste log. Desta forma, todas
as alterações ocorridas no master são imediatamente replicadas para os
outros servidores slave.
A replicação Master-Slave é um processo
assíncrono, isto é, poderá existir um atraso de informações entre o master
e os slaves dependendo do meio de comunicação entre eles. Além disto, como
os slaves copiam as alterações do master, todas as modificações dos dados
devem ser aplicadas ao master, caso contrário os servidores ficarão sem
sincronismo. Este processo incremental com a execução de todas as
alterações indicadas no log binário a partir de um determinado momento,
não garante que os dados existentes antes do início da replicação eram
idênticos. Neste caso, antes de iniciar a replicação é preciso sincronizar
todos os servidores, colocando em todos eles uma cópia da base de dados a
ser replicada.
Para configurar a replicação cada servidor MySQL
deverá possuir um server-id único e o master deve estar com o log binário
habilitado. Além disto, crie um usuário no master com o privilégio FILE
(3.23.x) ou REPLICATION SLAVE (4.x ou superior), para que os slaves possam
se conectar a este servidor e fazer a leitura do seu log binário. Nos
slaves é preciso indicar o endereço do servidos master e o usuário que
será utilizado para fazer a conexão. A seguir esta um exemplo de
configuração do master e slave:
Master my.cnf
Slave
my.cnf
[mysqld]
[mysqld] ...
... server-id=1
server-id=2 #
IP ou DNS da máquina master log-bin
master-host=master.com.br
...
master-user=user_replication master-password=senha_usuario master-port=3306
Uma vez configurado os servidores, coloque a imagem dos dados a serem
replicados em cada um dos servidores e reinicie o MySQL em todos os hosts.
Depois disto a replicação estará funcionando. Para verificar o sucesso da
configuração execute os comandos SHOW MASTER STATUS e SHOW SLAVE STATUS,
respectivamente nos servidores master e slaves.
No próximo artigo
serão abordados os recursos e topologias avançadas para a replicação de
dados do MySQL.
Abraços e até breve!
Eber M. Duarte
 |
|
Eber
Duarte é bacharel em Ciência da Computação, pós-graduado em
Engenharia Elétrica e MySQL Professional Certified. Trabalha há 3
anos na EAC Software (BH/MG) como Analista e desenvolvedor de
sistemas, atuando especialmente no desenvolvimento de sistemas Web.
Atualmente, também é consultor e instrutor do banco de dados MySQL.
Contatos: eber@eacnet.com.br mailto:%20www.mysqlbrasil.com.br
ou mailto:%20www.eacsoftware.com.br
| |
|

|
|