Dúvida - Melhor opção para REPLICAÇÃO de dados no Mysql
Pessoal, estou com uma duvida, pois ainda não tive experiencia com replicação de dados no Mysql.
Eu começarei um sistema grande e tenho que verificar os procedimentos de replicação desde o começo.
Eu já vi a tenho duas formas de trabalhar com replicação (Caso tenha outra melhor do que as duas de baixo, favor me falarem)
O que eu quero, é criar 2 ou mais servidores remotos ou não, que, ao cair um servidor ´principal´, os outros servidores continuem trabalhando para que meu sistema trabalhe normalmente mesmo se o servidor principal cair e, quero manter a integridade e consistencia dos dados.
Eu irei trabalhar com várias lojas (empresas) que irão acessar a mesma base de dados, mas nas tabelas, conterá uma FK contendo a chave da empresa que cadastrou aquele item para que em um financeiro por exemplo, eu visualize apenas o financeiro da empresa que eu eu escolher ou o financeiro de todas as empresas.
Aqui estão as duas formas que já ouvi falar:
1) Fazer a replicação direto pelo Mysql como se tivesse utilizando o Mysql Cluster, só que ao invés disso, utilizando as ´ferramentas´ do próprio MySql 5, com as variáveis [b:5881739748]auto_increment_increment[/b:5881739748] e [b:5881739748]auto_increment_offset[/b:5881739748], e o sistema de fail-over automático.
As ocorrencias (registros) das tabelas teram uma FK com o codigo da empresa, idicando que foi a empresa ´X´ que fez aquele cadastro.
O que acontece: eu nunca tive experiencia e ainda não o testei. Estou estudando o caso pela SQL Magazine.
2) Fazer com que meu sistema ao inserir um registro no banco, ele grave o numero da chave que vai ser criada, multiplicada por 1000 e somar o numero da loja... Por exemplo, o primeiro registro da loja 1, terá como codigo q é a chave primeria da tabela o seguinte valor: 1001, o segundo registro 2001, o terceiro registro 3001.
o proximo registro que a empresa 2 irá fazer, a chave ficaria com o valor: 4002, o outro valor como 5002.
a empresa 3, ao cadastrar, terá o valor: 6003, 7003 e assim sucessivamente.
Dai se um servidor cair, eu terei que fazer uma verificação no meu programa se o servidor principal caiu e começar a assumir um outro servidor...
Quando o servidor principal voltar, eu terei que checar as bases de dados dos outros servidores e caso tenha novos registros, fazer essa atualização no servidor princiapal.
Eu começarei um sistema grande e tenho que verificar os procedimentos de replicação desde o começo.
Eu já vi a tenho duas formas de trabalhar com replicação (Caso tenha outra melhor do que as duas de baixo, favor me falarem)
O que eu quero, é criar 2 ou mais servidores remotos ou não, que, ao cair um servidor ´principal´, os outros servidores continuem trabalhando para que meu sistema trabalhe normalmente mesmo se o servidor principal cair e, quero manter a integridade e consistencia dos dados.
Eu irei trabalhar com várias lojas (empresas) que irão acessar a mesma base de dados, mas nas tabelas, conterá uma FK contendo a chave da empresa que cadastrou aquele item para que em um financeiro por exemplo, eu visualize apenas o financeiro da empresa que eu eu escolher ou o financeiro de todas as empresas.
Aqui estão as duas formas que já ouvi falar:
1) Fazer a replicação direto pelo Mysql como se tivesse utilizando o Mysql Cluster, só que ao invés disso, utilizando as ´ferramentas´ do próprio MySql 5, com as variáveis [b:5881739748]auto_increment_increment[/b:5881739748] e [b:5881739748]auto_increment_offset[/b:5881739748], e o sistema de fail-over automático.
As ocorrencias (registros) das tabelas teram uma FK com o codigo da empresa, idicando que foi a empresa ´X´ que fez aquele cadastro.
O que acontece: eu nunca tive experiencia e ainda não o testei. Estou estudando o caso pela SQL Magazine.
2) Fazer com que meu sistema ao inserir um registro no banco, ele grave o numero da chave que vai ser criada, multiplicada por 1000 e somar o numero da loja... Por exemplo, o primeiro registro da loja 1, terá como codigo q é a chave primeria da tabela o seguinte valor: 1001, o segundo registro 2001, o terceiro registro 3001.
o proximo registro que a empresa 2 irá fazer, a chave ficaria com o valor: 4002, o outro valor como 5002.
a empresa 3, ao cadastrar, terá o valor: 6003, 7003 e assim sucessivamente.
Dai se um servidor cair, eu terei que fazer uma verificação no meu programa se o servidor principal caiu e começar a assumir um outro servidor...
Quando o servidor principal voltar, eu terei que checar as bases de dados dos outros servidores e caso tenha novos registros, fazer essa atualização no servidor princiapal.
[vaza]
Curtidas 0
Respostas
Mysys
23/04/2008
Bom em relacao a segunda opcao vc nao precisa fazer esse esquema ..
tipo cadastro de cliente que é um registro unico para todas as lojas tudo bem ate da pra fazer assim mais pro restante acho melhor fazer 2 campos primarios exemplo
em uma tabela de estoque CODLJA e CODPRO como campos primarios e isso vc pode fazer pra todas as tabelas sei lá uma tabela de caixa ... CODLJA e CODCXA assim vc nunca vai misturar dados de uma loja com a outra mesmo que fique um dia inteiro trabalhando off hora que replicar nao tera problema algum...
mais em relacao a replicacao acho melhor vc fazer a replicacao do proprio mySQL 5 de uma olhada que aki no forum mesmo eu disponibilisei um tutorial alguns topicos atras...
tipo cadastro de cliente que é um registro unico para todas as lojas tudo bem ate da pra fazer assim mais pro restante acho melhor fazer 2 campos primarios exemplo
em uma tabela de estoque CODLJA e CODPRO como campos primarios e isso vc pode fazer pra todas as tabelas sei lá uma tabela de caixa ... CODLJA e CODCXA assim vc nunca vai misturar dados de uma loja com a outra mesmo que fique um dia inteiro trabalhando off hora que replicar nao tera problema algum...
mais em relacao a replicacao acho melhor vc fazer a replicacao do proprio mySQL 5 de uma olhada que aki no forum mesmo eu disponibilisei um tutorial alguns topicos atras...
GOSTEI 0