0

Replicação com o MySQL

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

Inicialmente, prepararemos a máquina mestre. O primeiro passo é fazer um dump da(s) base(s) de dados que queremos replicar. Isso serve para criarmos uma cópia exata do nosso banco de dados para colocarmos no servidor Escravo. Esse passo é muito importante! Para fazer um dump de uma base de dados, use o seguinte comando:

mysqldump --database <NOME DA BASE DE DADOS> -u<USUARIO> -p > c:\meu_db.sql

Ou para fazer dump de todas as suas bases:

mysqldump --all-databases -u<USUARIO> -p > meu_mysql.sql

O Sistema irá gerar um arquivo texto, que pode ser bastante grande, dependendo apenas do tamanho de sua base de dados. Se sua(s) base(s) forem grandes, recomendo fazer um dump para cada uma em vez de um grande arquivo contendo todas elas. Dentro desse arquivo texto existem as instruções, em linguagem SQL, para criar e popular sua base de dados em outra máquina.

Recomendo realizar o processo de dump acima ao invés de outras formas de cópia de dados, como copiar os arquivos do diretório ‘data’ diretamente através da rede, pois você poderá ter problemas caso use tabelas do tipo InnoDB.

Já com o arquivo SQL do dump da máquina Mestre em mãos, vamos precisar criar o usuário que fará a replicação entre as duas máquinas. Para isso, entramos no mysql com uma conta que permita a criação de privilégios. A conta do root do mysql é uma excelente pedida.

mysql> GRANT FILE, SUPER, REPLICATION CLIENT, REPLICATION SLAVE, RELOAD
       ON *.* TO 'replica'@'%' IDENTIFIED BY 'senhareplica';

No exemplo acima, usei como usuário de replicação a conta ‘replica’, e como senha a palavra ‘senhareplica’. Modifique esses parâmetros a seu gosto. Uma observação sobre a linha acima é que ela permite que o suário replica copie os dados de qualquer máquina da rede. Caso preferira restringir isso, utilize apenas o IP da máquina Escravo ao invés do símbolo de ‘%’, usado no exemplo. Um outro detalhe que vale a pena ser observado é que o comprimento máximo da senha é de 16 caracteres.

Configuraremos agora o arquivo de inicialização do MySQL do servidor Mestre. Abra o arquivo my.ini (windows) ou my.cnf (linux) e localize a seção [mysqld]. No arquivo do linux, já existem informações prontas para uso, enquanto que o arquivo do windows é mais enxuto. O importante é acrescentar no final da seção [mysqld] as seguintes linhas:

log-bin
server-id = 1

Salve o arquivo e reinicie o servidor Mestre. As linhas servem para iniciar o log binário do mysql. O parâmetro server-id designa um número único para o seu servidor. Este número não deve se repetir.Uma vez reiniciado, faça login e digite no servidor mestre:

mysql> RESET MASTER;

Este comando serve para reiniciar os logs binários já existentes.

Iremos discutir em seguida como configurar a máquina Escravo para a replicaçã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.)