GARANTIR DESCONTO

Fórum Replicação ou Clusterização: Qual devo usar ? #31121

01/11/2007

0

Bom pessoal, andei usando a pesquisa do fórum, mas não me ajudou muito, ainda tenho a seguinte dúvida:

Preciso montar um esquema de servidores para rodar um sistema Delphi/MySQL, que estará dividido em 3 lojas:

PHD – Terá o [b:e1adaa87de]servidor principal[/b:e1adaa87de], e as máquinas internas irão acessá-lo através da rede local (ou seja, a banda larga reservada à ele, fica apenas para quem for acessar direto no servidor). Caindo a banda larga, ficará afetado apenas as atualizações das demais lojas;

BJBC e DHP – Terão [b:e1adaa87de]servidores locais[/b:e1adaa87de], que constantemente estarão enviando suas atualizações para o servidor principal (loja PHD, a única que terá acesso aos dados de todas as lojas). Caso venha a ter indisponibilidade de conexão com o servidor principal, os servidores locais ficarão encarregados de armazenarem as informações até que a conexão seja restabelecida, e logo após isto, iniciar a transmissão dos dados atualizados. Enquanto houver conexão, as atualizações no servidor central deverão ser simultâneas. Lembrando que os servidores de BJBC e DHP não terão nenhum tipo de contato, ambos apenas irão ser reportar à PHD (servidor central). Não é necessário que nenhuma dessas duas lojas tenha acesso aos dados uma da outra.

Diante deste cenário, qual tipo de configuração é a ideal e mais confiável a se fazer (Replicação ou Clusterização) ?

E como deveria fazer isto ?

Servidor Central está configurado com o Fedora 5 (com o mysql instalado e com usuário configurado pra ter acesso total), e os Servidores Locais com o Fedora 7 (e o mysqld instalado, e rodando na inicialização).


Estou lendo 2 livros, [b:e1adaa87de]MySQL Guia do Programador [/b:e1adaa87de]e [b:e1adaa87de]MySQL a Bíblia[/b:e1adaa87de]. Entendi mais ou menos o conceito disso, mas a parte prática não entendi nada até agora, poderiam me ajudar ?


Supervitao

Supervitao

Responder

Posts

11/02/2008

Supervitao

Bom pessoal, estou de volta com meu tópico. Já optei por usar a [b:ae336845c9]Replicação[/b:ae336845c9], só que até o presente momento eu não tenho entrado em acordo com a configuração dos servidores. Já tentei diversas opções vindas de livros (MySQL, a Bíblia e MySQL, Guia do Programador) e tutoriais da internet, cada um feito de uma forma diferente, o que acabou me confundindo, testei tudo e nada funcionou. Vou postar a seguir os códigos que eu mais tenho utilizado, e por gentileza, alguém me dê uma orientação mais clara, pois não entendo bem de MySQL, entrei de gaiato nessa história de configurar os servidores. Aí vão os códigos e os procedimentos:


[b:ae336845c9]Passo 1:[/b:ae336845c9] Configurar servidor master

[mysqld]
log-bin=mysqlmaster # Habilitando log binário
server-id=1 Identificando o servidor


[b:ae336845c9]Passo 2:[/b:ae336845c9] Criar conta exclusiva para replicação

GRANT REPLICATION SLAVE ON *.* TO ´<usuario>´@´<dominio>´ IDENTIFIED BY ´<senha>´;


[b:ae336845c9]Passo 3:[/b:ae336845c9] Configurando servidor Slave

[mysqld]
server-id=2 # Identificando o servidor

[b:ae336845c9]Passo 4:[/b:ae336845c9] Após reiniciar servidor slave, os seguintes comandos foram executados

CHANGE MASTER TO
-> MASTER_HOST = ´<endereço IP ou URL do servidor master>´ ,
-> MASTER_PORT = <porta no qual o servidor está configurado, sem aspas>,
-> MASTER_USER = ´<usuário com acesso ao log binário>´,
-> MASTER_PASSWORD = ´<senha do usuário com acesso ao log binário>´,
-> MASTER_LOG_FILE = ´<vazio ou arquivo de replicação, se houver>´,
-> MASTER_LOG_POS = <zero ou linha de início de replicação, sem aspas>;

[b:ae336845c9]Passo 5:[/b:ae336845c9] Deixar a mesma database nos 3 servidores


Fiz estes passos e nada aconteceu. Agora a minha dúvida: A alteração que ele replica é de apenas registros, ou seria também na estrutura ? Por que no teste que fiz, eu criei uma nova tabela no servidor master, e depois fui verificar nos servidores slave, e nada desta tabela aparecer.

Uma outra forma que utilizei para configurar um servidor escravo, foi editar o my.conf da seguinte forma:

[mysqld]
server-id=2
master-host=<endereço IP ou URL do servidor master>
master-port=<porta no qual o servidor está configurado>
master-user=<usuário com acesso ao log binário>
master-password=<senha do usuário com acesso ao log binário>
replicate-do-db=<nome do banco de dados a ser replicado>

E novamente fiz o mesmo tipo de teste, criando uma tabela, ao invés de editar um registro. Será que a replicação estaria funcionando, e o erro estaria no tipo de teste ?

Como sou iniciante nesse brinquedo, quanto mais claro na explicação, será mais fácil para que eu entenda, desde já obrigado.



[b:ae336845c9]Obs.[/b:ae336845c9] A estrutura da replicação seria:

- Servidor PHD é o Master;
- Servidor DHP e Servidor BJBC são os Slaves;

Deve funcionar da seguinte forma: Os registros dos servidores DHP e BJBC serão enviados para o servidor PHD, e este irá sincronizar os dados, e devolver uma cópia atualizada para os servidores DHP e BJBC, sendo que estes dois servidores (DHP e BJBC) jamais se comunicarão, apenas se reportarão ao servidor PHD.


Responder

Gostei + 0

24/04/2008

[vaza]

Opa amigo, conseguiu resolver o seu problema?
Eu terei que fazer esses testes logo logo para meu novo sistema.

Nessa ´estrutura´ que vc criou, os dados já estão sendo replicados?
Você esta usando que versão do MySql?
Você esta usando as engines InnoDB?
Abraços..t+


Responder

Gostei + 0

24/04/2008

Eselvati

Opa...

no servidor de 1 filial...

[mysqld]
log-bin
server-id=2
master-host=seuhostprincipal
master-user=seuusuariodereplicacao
master-password=senhadereplicacao

na outra filial

[mysqld]
log-bin
server-id=3
master-host=seuhostprincipal
master-user=seuusuariodereplicacao
master-password=senhadereplicacao


no servidor principal
[mysqld]
server-id=1
#log-bin desabilitado...pois dele nao sera replicado nada..apenas recebera dados de replicacao de filiais


Ederson Selvati


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar