Replicação em MySql

Forum sobre SQL.

Moderador: Moderadores

Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Replicação em MySql

Mensagem por janio »

Olá a todos,

Alguém usa com sucesso REPLICAÇÃO ou ESPELHAMENTO em Mysql?

Janio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Replicação em MySql

Mensagem por janio »

A replicação em MySql eh um recurso fantástico! Td que é feito no servidor principal, imediatamente vai para o servidor reserva!

E a configuração para desfrutar dessa maravilha... é mínima!

Segue exemplo de Replicação entre Master-Slave:

Código: Selecionar todos

# OBSERVAÇÃO: Caso a sua instalação do MySql não exista o arquivo my.ini, basta criá-lo e colocá-lo em c:\Windows que o MySql passará lê-lo ao iniciar.

# Parar mysql
# Editar o arquivo my.ini

# Exemplo do my.ini no servidor master

[Mysqld] 
server-id = 1
log-bin=mysql-bin
innodb_flush_log_at_trx_commit=1
sync_binlog=1

# Exemplo do my.ini no servidor slave

[Mysqld] 
server-id = 2
master-host = ip do servidor master
master-user = usuario (com poderes para replicação)
master-password = senha
master-port = 3306
master-connect-retry = 60

# Reinicie o MySQL nos dois servidores:
# No servidor SLAVE, entrar no mysql pelo prompt e executar o comando: mysql> start slave; (este comando deve ser executado apenas no servidor slave). Neste momento a replicação deve ter iniciado.
# Ainda no servidor slave, executar o comando: mysql> show slave status \G;
# Verifique os parâmetros Slave_IO_Running e Slave_SQL_Running. Ambos devem estar com o valor “YES”. Caso não esteja, refaça o processo.
# Fazer alterações na base do servidor MASTER e verificar se a mudança foi replicada para o outro servidor.

# observacao IMPORTANTE: a replicacao so eh feita se os dois servidores estiverem com a mesma base de dados
# se nao estiverem sicronizados, a replicacao nao acontece!

##
## FIM
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Replicação em MySql

Mensagem por alxsts »

Olá!

Obrigado por compartilhar.
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Replicação em MySql

Mensagem por JoséQuintas »

Lembro quando pesquisei isso, que dizia algo sobre fazer uma cópia do master para o slave como ponto de partida.
Acho que isso é o que significa a última observação desse arquivo.

No meu caso, no cliente tem uma determinada base de dados, e no meu servidor tem todas.
Lembro de algo sobre isso na replicação, seria interessante também se fosse possível.
Até mesmo pra sincronizar matriz/filiais.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Replicação em MySql

Mensagem por fladimir »

Replicação não seria uma coisa e Master/Slave outra?

No meu ponto de vista (não sei se são diferentes) mas a melhor configuração para Matriz e Filiais via SGBD seria o seguinte:

Cada empresa tem um Servidor rodando seu Banco MySQL compartilhando informações com outros servidores das outras empresas do grupo, mas em caso de queda da net 1 não depende do outro...

...Vou falar de 1 exemplo prático q vi, mas não conheço a fundo os detalhes somente por cima pelo q conversei na época uns 5 anos atrás com um conhecido q trabalhava nas empresas.

No caso do exemplo prático são 3 empresas e não tem digamos assim 1 Matriz e Filiais, são 3 empresas teoricamente independentes q compram 1 pra cada empresa e fazem vendas separadamente, porém os clientes são comuns e os produtos tb (a nível de cadastro), cada empresa tem seu contas a receber, e contas a pagar etc.

Ai o q ocorre...

Cada servidor se comunica com o outro via Net fazendo Sincronização Master/Slave, enviando dados e recebendo dados, resultado q eles tem lá

Clientes ao cadastrar em 1 esta em todas (ele não falou mas acredito q sejam faixas de códigos por empresas pra não conflitar)
Produtos ao cadastrar em 1 esta em todas (mesma lógica acima talvez)
Estoques são separados, porém 1 empresa visualiza o estoque das outras (acredito q aki sejam bancos separados em 1 mesmo server MySQL)
Contas a Receber, não sei como funciona
Contas a Pagar, cada empresa tem o seu.
Movimentação, cada empresa tem a sua, porém 1 empresa ve o movimento das outras. (talvez mesma lógica do estoque)

Se a Net cai ou algo do tipo, as empresas ficam rodando normalmente e qdo voltar sincronizam/atualizam os dados

A grosso modo é isso q o meu colega passou na época, mas posso estar esquecendo de algo...

Agora sinceramente o q eu achei legal, não sei se é replicação ou master/slave ou se outra coisa, mas o fato de rodarem localmente e ao mesmo tempo compartilhando informações via Net e em caso de pane da net não afeta e depois qdo volta se atualiza.

Isso no meu ponto de vista traz segurança, velocidade, praticidade (ver as informações das outras empresas)

Eu queria saber (se necessário abrimos outro tópico pra não fugir) se o assunto em questão aki pode ser demonstrado na prática via Replicação ou Master/Slave (não sei se são diferentes, repito), mas pra ter um resultado prático em um ambiente com várias empresas, 1 cenário seria Matriz/Filiais e outro tipo o q mencionei acima, empresas de 1 mesmo dono mas com vidas independentes até certo ponto e compartilhando algumas informações.

[]´s
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Replicação em MySql

Mensagem por janio »

Na replicação master/slave, o q se fizer no servidor principal vai para o reserva, ok? Mas o contrário NAO eh verdadeiro. Se por um azar alguma máquina se conectar ao slave e fizer alguma mudança, essa mudança não vai para o master e o sincronismo foi pro beleléu, ou seja, f* tudo!

Porém, há uma configuração master/master! Posso fazer mudança em qq dos servidores q vai pro outro instantaneamente! Eu fiz o teste aqui e funcionou uma Blz! Essa seria a configuração ideal, no meu modo de ver, para matrizes e filiais! Cada uma tem o server, mas o q se fizer numa vai para a outra. A net caiu? Num tem problema. Pode continuar lançando q Qndo a conexão se restabelecer eles próprio se sincronizam!

Outra coisa muito legal no master/master eh vc poder fazer um 'balanceamento de carga'. Em um cliente com 100 máquinas, por exemplo, vc pode direcionar 50 pra um servidor e 50 para o outro servidor. O sincronismo eh perfeito. Mesmo conectado a servidores diferentes, todo mundo se enxerga hehehe

Janio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Replicação em MySql

Mensagem por janio »

Quintas,

Eh possível replicar somente um banco (dentre vários) tbm! Sim, isso eh possivel!

Janio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Replicação em MySql

Mensagem por janio »

Um exemplo de configuração para MASTER-MASTER seria:

# replicacao master-master
# Observacao: Apos iniciado o mysql, executar comando start slave; nos dois servidores

# Servidor 1

Código: Selecionar todos

[Mysqld] 
server-id = 1
log-bin=mysql-bin
innodb_flush_log_at_trx_commit=1
sync_binlog=1
auto-increment-increment = 2
auto-increment-offset = 1
master-host = 192.168.2.107
master-user = usuario
master-password = senha
master-port = 3306
master-connect-retry = 60
# Servidor 2

Código: Selecionar todos

[Mysqld] 
server-id = 2
log-bin=mysql-bin
innodb_flush_log_at_trx_commit=1
sync_binlog=1
auto-increment-increment = 2
auto-increment-offset = 2
master-host = 192.168.2.104
master-user = usuario
master-password = senha
master-port = 3306
master-connect-retry = 60
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Replicação em MySql

Mensagem por fladimir »

mas como definimos quais bancos/tabelas serão replicadas ou obrigatoriamente é tudo?
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Replicação em MySql

Mensagem por janio »

Fonte:
http://www.douglaspasqua.com/2012/03/23 ... -no-mysql/
No exemplo de configuração acima estamos replicando somente o banco chamado base1. Caso precise replicar mais de uma base de dados, você pode inserir quantas linhas do parâmetro binlog-do-db forem necessárias:

binlog-do-db = base1
binlog-do-db = base2
binlog-do-db = base3
...

Caso você não especifique nenhum parâmetro binlog-do-db, todas as base de dados serão replicadas. Você tem também a opção de especificar o parâmetro binlog-ignore-db para ignorar quais base de dados não serão replicadas. É o processo inverso ao do parâmetro binlog-do-db:

binlog-ignore-db = mysql
binlog-ignore-db = information_schema
Outro artigo bastante completo:
http://xoops.net.br/docs/mysql/manual/ch04s11.php
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Replicação em MySql

Mensagem por fladimir »

Vlw
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Replicação em MySql

Mensagem por rubens »

Jânio...

Seguindo esse raciocínio aí... Teria como usar isso num esquema de supermercado?
Tipo assim, os pdvs trabalhariam independente e de tempos em tempos fariam "Sincronização" atualizando o servidor com os dados de venda, seria possível fazer isso com esse esquema aí?

Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar do usuário
Poka
Usuário Nível 4
Usuário Nível 4
Mensagens: 563
Registrado em: 25 Out 2004 21:26
Localização: Leme/SP

Replicação em MySql

Mensagem por Poka »

Tenho sistema em apenas 2 mercadinhos, se por acaso o servidor der pau, ferrou.
Mercado é complicado, trabalha sábado, domingo.
Complementando o raciocínio do Rubens, para o terminal trabalhar independente, alguns arquivos são necessários, como:
clientes
tabela de produtos com os preços das vendas
contas a receber (pagar nem tanto)
no caso de der pau no servidor esses arquivos no terminal, teriam, que estar atualizadíssimos.
isto é , sempre que alterar um preço no servidor (retaguarda) atualizar todos os terminais.
Sempre que um terminal for ligado, primeiramente atualizar todos os dados do servidor.
E o recebimento de contas , com vários terminais trabalhando sem o servidor?
E se tem um produto já na prateleira para incluir, como fazer. (lembre-se que estamos com pau no servidor).

Isso poderia ser no próprio sistema mesmo.
Gostaria de saber como os colegas trabalham?

Poka.
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Replicação em MySql

Mensagem por janio »

Eu penso que no esquema MASTER-MASTER da sim pra trabalhar com os pdv's off. Lembre-se que em qualquer maquina que houver atualização, ela joga o que mudou para os outros 'servidores'. Assim, mesmo que o servidor principal dê pau, os pdv's ficam off, mas quando o servidor principal voltar o mysql se encarregarar de mandar tudo (todas as mudanças que houve) pra ele!

Janio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Responder