Jump to content


Photo

[Desafio] Replicação Multi-Master


  • Faça o login para participar
2 replies to this topic

#1 Haetten

Haetten

    Novato no fórum

  • Usuários
  • 6 posts
  • Sexo:Não informado

Posted 17/09/2010, 11:46

Olá, amigos!

Sou novo no fórum e entrei com uma problema com um nível de dificuldade que creio ser alto.

Eis meu problema, que me foi apresentado ontem e não sei se serei claro o suficiente:

Trabalho em uma empresa que desenvolveu um sistema online comercial para uma empresa, controlando fluxo de caixa, dados de clientes, etc.

Na empresa cliente,há uma matriz, em uma cidade X, que contém um servidor que armazena dados comuns a todas as filiais (como dados de clientes) e dados individuais de cada filial.

E em várias cidades Y,W,Z, existem filiais, que utilizam o mesmo sistema online.

Problema: como há um único servidor para todas as filiais e como cada filial e a matriz estão distantes geograficamente, tomamos a seguinte decisão:

- Na matriz, manter um servidor que trabalhe como MESTRE com as tabelas de dados comuns às filiais e como ESCRAVO com as tabelas de cada filial.
- Nas filiais, manter um servidor que trabalhe como ESCRAVO com as tabelas de dados comuns às filiais e como MESTRE com as tabelas de cada filial.
Mantendo os dados sincronizados com replicação. As DBs seriam algo como:

TABELAS DATABASE MATRIZ
Mãe - MESTRE
F1 - ESCRAVO
F2 - ESCRAVO
F3 - ESCRAVO
Fn - ESCRAVO

TABELAS DATABASE FILIAL1
Mãe - ESCRAVO
F1 - MESTRE

TABELAS DATABASE FILIAL2
Mãe - ESCRAVO
F2 - MESTRE

TABELAS DATABASE FILIALn
Mãe - ESCRAVO
Fn - MESTRE



Fiz alguns modelos de possíveis soluções para essa situação:
(Cada retângulo é um servidor e cada quadrado interno é uma tabela da DB)

Posted Image
O primeiro modelo seria o ideal. Um servidor para a matriz e para cada filial.
Alterações seriam realizadas localmente e a replicação atualizaria os dados para os escravos.
Ponto negativo: É possível um servidor ser escravo de vários mestres?


Posted Image
No segundo modelo, as filiais seriam escravas do mestre na tabela Mãe.
Os dados de cada filial seriam atualizadas na matriz através de um dump agendado realizado diariamente.
Ponto negativo: Dados de filiais não estariam sincronizados.

Posted Image
No terceiro modelo, seriam instalados, além da matriz, N servidores MySQL para N filiais (virtualmente ou fisicamente).
Ponto negativo: Custo alto. Tanto na aquisição de novos servidores, se feita fisicamente, ou na instalação de várias instâncias no mesmo servidor, se feita virtualmente.


Das 3 soluções que encontrei até o momento, achei a 2 mais interessante, pois é algo que já sei fazer. Porém, essa não mantém os dados sempre atualizados na matriz.

Venho aqui pedir a ajuda de vocês pra solucionar esta situação.

Ah, é! Justificativa: O motivo dessa alteração nos servidores é a questão do tempo de resposta. Como há um único servidor, acessado on-line, para realizar uma simples venda a matriz é acessada diretamente pela Internet, logo, o tempo de resposta não é o ideal.

Novas soluções ou ferramentas para resolver isso podem ser utilizadas.

Vamos fazer um Brainstorm aqui! :D

#2 Haetten

Haetten

    Novato no fórum

  • Usuários
  • 6 posts
  • Sexo:Não informado

Posted 14/10/2010, 10:52

Sei que isso pode ser feito sem problemas com Oracle, de acordo com o conceito de bases de dados distribuídas.

Mas em MySQL, ninguém tem alguma idéia?

#3 LeoB

LeoB

    Super Veterano

  • Usuários
  • 1876 posts
  • Sexo:Masculino
  • Interesses:Programação

Posted 14/10/2010, 13:14

Acontece que a maioria dos frequentadores do fórum são desenvolvedores web, e essa aplicação que você quer não é comum no dia-a-dia. Se quase um mês depois da primeira mensagem você não conseguiu resolver o problema, o negócio é cair em cima da documentação. O que existir pra saber sobre o assunto, vai estar lá.

http://dev.mysql.com...eplication.html
http://dev.mysql.com...eplication.html

Você pode também tentar perguntar direto no fórum oficial:

http://forums.mysql.com/list.php?26

Sempre tem uns caras que manjam.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq