Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

junka

Replicação de base de dados MYSQL

Recommended Posts

Olá Colegas,

 

Estou enfrentando dificuldades em implementar a replicação de banco de dados no MYSQL. Realmente não sou um expert no assunto, mas "segui o manual" e ainda assim não está funcionando como esperado.

 

Estou utilizando o MYSQL em máquinas com WIN2003. Infelizmente a empresa não trabalha com Linux.

 

Qualquer dica será muito bem vinda.

 

Obrigado,

Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como funcionaria essa replicação???..explique de uma forma que um burro como eu possa compreender ..assim eu posso tentar ajudar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Amigo, A replicação consiste em se trabalhar com banco de dados MySQL em duas ou mais máquinas, um funcionando como Master e outro(s) como Slave. Para efetuar a replicação, sei que é necessário efetuar alterações no arquivo my.ini (no caso de servidores Windows, meu caso) e adicionar permissões ao usuário remoto no Master, para que o Slave possa "buscar" as atualizações. Estudei o manual do MYSQL (versão 4.0.18) e ainda assim não consegui fazer a replicação funcionar.Quem puder ajudar, agradeço !Um abraço, Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha, eu li que na hora de iniciar a replicação, os bancos tem que ser identicos senão não funciona, mas mesmo assim o meu não funcionou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

E ae galera, fiz alguns testes com replicação um tempo atrás (um bom tempo) e lembro de ter funcionado, foi em windowsXP.

 

No master, fiz backup do banco de dados (no caso todos os bancos).

No slave, recuperei os backups.

Depois os arquivos de log (.bin) foram reiniciados, ou seja, copiei p/ um CD e no Master/Slave os log's foram removidos para ficarem idênticos ao iniciar novamente o mysql.

 

Agora o seguinte: no arquivo my.ini a variável server-id deve ser única, tipo: master = 1, e no slave = 2.

 

como foi dito no post anterior deve-se dar permissão para o usuário que será utilizado a replicação, no caso dos testes deixei no root.

Esta foi a configuração básica, agora neste momento não lembro todas as configurações no mysql.

 

Porque precisa definir, no caso do slave, o hostname do master a posição que está o logbinário e o nome do ultimo arquivo .bin gerado.

 

A fonte de informação utilizada foi http://dev.mysql.com/doc/mysql/pt/replicat...ementation.html.

 

Deu um trabalho mas funcionou legal, se quiser configurar o my.ini com mais simplicidade e até com opções mais acessíveis, utilize o MySQLAdministrator que é mto bom.

 

O segredo é dominar o uso do log binário, no site explica legal como configurar alguns itens, mas realmente outros ficam dificeis de entender.

 

Utilizei a versão 4.0.18.

 

qquer dúvida posta ae.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só que tem um detalhe que a partir da versão 4.0.2 a replicação tem que ser feita de modo diferente e eu não quero replicar todas as bases, somente uma específica.Eu já pesquisei no manual e em vários sites da net e as propostas não funcionaram.A minha situação é a seguinte:* fiz todas a configurações possíveis e não funcionou;* não dá nenhuma menssagem de erro;* estou usando o windows 98 e o mysql 5.0;* quando dou o comando: show slave status, a thread Slave_sql_running mostra yes, mas a thread Slave_io_running mostra no;E como eu faço para saber se o slave está ou não conseguindo conectar no master?

Compartilhar este post


Link para o post
Compartilhar em outros sites

é cara... determinado banco não tentei e tbm num vi nada a respeito ainda...e tbm não usei mysql 5.0 :( vou procurar tbm e qquer coisa volto a postar.flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, sentiu o drama. Mas não precisa ser de um banco específico, pode ser tb de todas as bases, eu quero mesmo ver essa replicação funcionar aqui no meu pc.E tem que ser no mysql 5.0, porque ele tem as funcionalidades que eu preciso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá eu dei uma olhada no log de erros do slave e ví que deu esse erro: 050511 16:31:34 [Note] Slave SQL thread initialized, starting replication in log 'cassio-bin.000001' at position 95, relay log '.\fernanda-relay-bin.000006' position: 95 050511 16:31:34 [Note] Slave I/O thread: connected to master 'repl@192.168.0.4:3306', replication started in log 'cassio-bin.000001' at position 95 050511 16:31:34 [ERROR] While trying to obtain the list of slaves from the master '192.168.0.4:3306', user 'repl' got the following error: 'Access denied; you need the REPLICATION SLAVE privilege for this operation' 050511 16:31:34 [Note] Slave I/O thread exiting, read up to log 'cassio-bin.000001', position 95 Só que eu criei o usuário com privilégios de replicação no master. Não entendi pq deu acesso negado. O comando certo é: GRANT REPLICANTION SLAVE ON *.* TO user@'%' IDENTIFIED BY 'senha';

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá eu refiz as configurações e deu certo, criei um novo usuário e reconfigurei tudo. O problema era que eu dei outras permissões para o usuario da replicação, impedindo que ele conectasse ao master. Não era para fazer isso:*Se você planeja usar as instruções LOAD TABLE FROM MASTER ou LOAD DATA FROM MASTER a partir da máquina slave, você precisará de permissão para esta conta adicional. Conceda a conta os privilégios globais SUPER e RELOAD. Conceda o privilégio SELECT em todas as tabelas que você deseja carregar. Qualquer das tabelas master nas quais a conta não possa fazer um SELECT serão ignoradas por LOAD DATA FROM MASTER. *Mas valeu pela ajuda e desculpe o incomodo!Estou mandando as configurações do arquivo my.ini que fica no diretorio de instalação do windows(ex:c:\windows) para replicar um banco de dados específico e não todos os bancos no servidor. O restante é só segui o manual que funciona certinho.Master:[mysqld]log-binlog-errbinlog-do-db=java server-id=1Slave:[mysqld]log-binlog-errreplicate-do-db=java server-id=2obs: para replicar mais de um banco use os nomes deles entre virgura (ex: replicate-do-db=java,teste; binlog-do-db=java,teste);binlog-do-db=java => isso é opcional, mas deve melhorar o desempenho dos servidores;Outra dica é dá uma lida na seção "O log binário" do manual antes de começar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.