0

Replicação com o MySQL

criado por Dam em 29/07/2007 4:57pm
Preparando a Máquina Escravo

Agora iremos preparar a máquina Escravo. Antes de qualquer passo, devemos restabelecer as bases de dados do servidor mestre na máquina escravo, através do dump que fizemos no primeiro passo. Para isso, usamos o seguinte comando:

mysql -u <USUÁRIO> -p < c:\meu_arquivo.sql

Substitua o nome do arquivo pelo que você criou na etapa de preparação da máquina Mestre. Agora vamos alterar o arquivo my.cnf ou my.ini. Novamente, localizamos a seção [mysqld] dentro do arquivo. Porém os parâmetros agora são diferentes.

server-id = 2
master-host = Endereço IP do servidor MESTRE
master-user = replica
master-password = senhareplica
replicate-do-db = minha_database1

Chamo a atenção para a linha server-id= . Repare que no Escravo usei o número , enquanto no mestre usei o número 1. Se tivéssemos uma terceira máquina replicando dados, ela deveria ser configurada com server-id=3. Estes números não devem se repetir, e são usados para o MySQL se orientar entre as replicações.

Os parâmetros master-user e master-password são os mesmos das configurações feitas no Mestre. Ou seja, no meu caso, replica e senhareplica. O último parâmetro é o comando replicatedo-db. Esse parâmetro especifica qual a base de dados que queremos replicar. Se tivéssemos mais bases de dados sendo replicadas, devemos incluí-las da seguinte forma:

server-id = 2
master-host = Endereço IP do servidor MESTRE
master-user = replica
master-password = senhareplica
replicate-do-db = minha_database1
replicate-do-db = minha_database2
replicate-do-db = minha_database3

Caso queira replicar todas as bases do servidor e não apenas algumas, basta não especificar a linha replicate-do-db, e o MySQL entenderá que todas as bases devem ser replicadas. Após esse passo, entre no prompt do mysql da maquina Escravo e digite:

mysql> RESET SLAVE;

Esse comando serve para deletar os logs binários já existentes, para evitar inconsistência com os logs binários já existentes no Escravo. Com isso, nossa configuração de replicação está encerrada. Não devemos nos esquecer de reiniciar o serviço do mysql no Escravo. Assim que for reiniciado, ele tentará se conectar ao Mestre, conforme especifi-cado no arquivo my.cnf ou my.ini. Para verificar se está tudo bem no seu escravo, e se os dados estão realmente sendo replicados, basta usar o comando:

mysql> SHOW SLAVE STATUS;

Repare que na saída do comando será mostrado uma coluna chamada “Slave Running”, cujo conteúdo deve ser “yes”. Caso haja algum problema, verifique as permissões da conta replica. Ela é geralmente culpada pela maioria dos problemas de replicação. Outra fonte de informação interessante é o log de erro do MySQL, localizado no linux geralmente no diretório /var/lib/mysql, e no windows no diretório onde ele foi instalado.

Caso tenha configurado um endereço IP incorretamente, o Escravo obviamente não conseguirá se conectar ao Mestre. Para consertar o problema, reconfigure o arquivo my.cnf ou my.ini com o IP correto, e reinicie o escravo.

Este foi meu primeiro artigo e espero ter sido de bom agrado a todos.

Um abraço...

Comentários:

Mostrando 1 - 2 de 2 comentários
Diego Hellas disse:
Parabéns pela inicativa do tópico.

Esse é um assunto muito interessante, e o que você abordou funciona.. mas poderia ter ido um pouco mais profundo, explicado mais detalhes de todo o processo e tals.


Abraços!
31/07/2007 7:10am (~16 anos atrás)

Cara, parabéns!! Um tema muito pouco abordado, mas de suma importância. Nem parece que foi o primeiro artigo. Continue assim!!
31/07/2007 4:10am (~16 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)