Replicação de base de dados com o ObjectMMRS

O ObjectMMRS é nossa suite de softwares para projetos de replicação de banco de dados.

Criado em 2002, o software foi evoluindo até tornar-se uma verdadeira ferramenta multi-uso quando o assunto é replicar dados em tempo real de forma bidirecional entre servidores remotos, sejam eles usando um mesmo software de banco de dados ou mesmo gerenciadores de diferentes fabricantes.

O produto tem tecnologia nacional, é perfeitamente adaptado às piores condições possíveis de internet, possibilitando assim a troca eficiente de dados mesmo em instáveis e restritas bandas de rede (32Kb via satélite, etc).

Assista a um vídeo mostrando a replicação de cerca de 50 mil operações entre bancos de dados postgresql, oracle e sqlserver em ambiente Mac OS e Windows.

Ficha técnica do produto

Clique aqui para solicitar um orçamento

Arquitetura do Software ObjectMMRS

Metáfora

A arquitetura é baseada na metáfora Editor (Publisher), Publicação (Publish), Assinantes (Subscriber) e Assinaturas (Subscription).
As bases de dados “master”, ou seja, as bases onde os dados sofrem modificações que devem ser replicadas, são os Editores (Publisher).
As bases de dados que recebem dados (slaves), independente se atuam ou não também como “master”, chamamos de Assinantes (Subscriber).
As tabelas da base “master” que são replicadas damos o nome de publicações (Publish), e a matriz entre publicações e assinantes damos o nome de Assinaturas (Subscription), sendo as assinaturas o relacionamento entre as publicações (tabelas) e os seus assinantes (servidores slave).

Funcionamento

O ObjectMMRS é um replicador assíncrono e bi-direcional de bases de dados, ou também chamado multi-master lazy.
É um software que prima pela simplicidade, não utiliza recursos específicos (de baixo nível ou não oficialmente documentados) de determinado SGBD, como leitura de logs de transações, etc – funciona através da coleta de informações através de uma trigger que é gerada para cada tabela a ser replicada. Esta trigger coleta informações a nível de coluna e linha alterada de forma que o replicador possa replicar única e exclusivamente dados realmente alterados e não a linha completa, reduzindo assim problemas de consumo excessivo de rede e também minimizando problemas de concorrência na atualização dos dados.
Esta trigger é gerada pelo replicador e pode até mesmo ser editada e alterada pelo cliente caso queira implementar alguma particularidade.
As informações coletadas pela trigger são armazenadas em tabelas que chamamos de “filas de operações a replicar”, e um engine (processo) consome esta fila a cada N segundos (configurável) enviando dados de forma gerenciada para os servidores apropriados, de acordo com a configuração realizada.
Em ocorrências de queda de rede, indisponibilidade do servidor remoto, etc, esta fila de operações a replicar é mantida, e a operação tem garantia de entrega assim que a rede ou o servidor remoto for restabelecido. Após um número X de tentativas, configurável, o engine pode opcionalmente enviar emails de alertas aos DBAs responsáveis para que verifiquem o problema com rede e/ou servidores.
O processamento da replicação é totalmente assíncrono e ocorre em “background”, com baixo overhead nos servidores de banco de dados.

Flexibilidade de instalação

O software ObjectMMRS pode ser instalado de N formas distintas, atendendo a várias necessidades específicas de cada projeto. Estaremos ilustrando a seguir algumas formas comuns de instalação.

Primeiro caso: Replicação unidirecional envolvendo 2 servidores – 1 master e 1 slave

Este é o caso mais simples onde o ObjectMMRS pode ser usado, e neste tipo de instalação temos a seguinte configuração padrão:
Servidor Master
Software de banco de dados
Software replicador
Dicionário de dados do replicador
Servidor Slave
Software de banco de dados
(Não necessita instalar nenhum software replicador e nem dicionário de dados)

Uma forma alternativa, em casos onde o servidor master esteja muito sobrecarregado:
Servidor Master
Software de banco de dados
Dicionário de dados do replicador
Servidor de Replicação
Software replicador
Banco de dados embedded do replicador (fila de operações a replicar)
Servidor Slave
Software de banco de dados
(Não necessita instalar nenhum software replicador e nem dicionário de dados)

Segundo caso: Replicação unidirecional envolvendo 1 master e N slaves, com N relativamente pequeno (menos de 30 por exemplo).

Servidor Master
Software de banco de dados
Software replicador
Dicionário de dados do replicador
N Servidores Slave
Software de banco de dados
(Não necessita instalar nenhum software replicador e nem dicionário de dados)

Uma forma alternativa, em casos onde o servidor master esteja muito sobrecarregado:
Servidor Master
Software de banco de dados
Dicionário de dados do replicador
Servidor de Replicação
Software replicador
Banco de dados embedded do replicador (fila de operações a replicar)
(10 threads simultâneas)
N Servidores Slave
Software de banco de dados
(Não necessita instalar nenhum software replicador e nem dicionário de dados)

Terceiro caso: Replicação unidirecional envolvendo 1 master e N slaves, com N relativamente grande (mais de 30 por exemplo).

Servidor Master
Software de banco de dados
Dicionário de dados do replicador

Servidores de Replicação (1 a cada 30 slaves)
Software replicador
Banco de dados embedded do replicador (fila de operações a replicar)
(Cada servidor de replicação rodando 1 engine com 10 threads simultâneas)
N Servidores Slave
Software de banco de dados
(Não necessita instalar nenhum software replicador e nem dicionário de dados)

OBS.: No caso de replicação bi-direcional a diferença é que teremos software replicador instalado em todos os servidores e não apenas no “master” central.

Flexibilidade de Uso

O ObjectMMRS permite total integração com softwares desenvolvidos pelo cliente, permitindo ao cliente consultar status, logs de operações a replicar, etc, diretamente no dicionário de dados do replicador, que é fornecido completamente documentado de forma a facilitar o desenvolvimento pelo cliente de qualquer interface customizada para administrar e monitorar os engines de replicação.
O engine possui “scheduler” próprio configurável para disparar ciclos de replicação a cada N segundos, este engine também pode ser configurado para disparar ciclos de replicação comandados pela aplicação do cliente.
O ObjectMMRS disponibiliza uma interface Java para que o cliente possa desenvolver classes Java que implementem esta interface e com isso podem ter total controle da replicação, podendo por exemplo desenvolver integrações com webservices, mainframes, etc.

Independente de Plataforma

O ObjectMMRS é um software 100% Java, podendo ser utilizado em qualquer ambiente operacional onde Java 5 possa ser executado. E em casos de servidores exclusivamente atuando como “slave” nenhum software é necessário, portanto basta ao servidor “slave” ser um banco de dados relacional acessível através de drivers padrão JDBC.

Integração de Sistemas

A OBJECT Sistemas ao longo de seus mais de 14 anos no mercado realizou diversos projetos para integração de sistemas.

Realizamos integrações nas mais heterogêneas plataformas, usando todos os tipos de recursos técnicos tais como replicação de banco de dados, customização de softwares ETL, desenvolvimento de servidores customizados em plataforma java ou C/C++/Corba, interfaceamento com mainframes através de sockets, emulação de terminal com varredura de tela, etc.

Realizamos projetos nos ambientes operacionais:

  • Sun Solaris
  • IBM/AIX
  • Unixware
  • FreeBsd
  • Linux (Slackware, Red Hat, Fedora, Mandrake, Debian, Ubuntu, Suse)
  • Windows (NT, 2000, 2003, XP, Vista, 7, etc)
  • Novell
  • Mainframes IBM e Unisys

Temos experiência na construção de servidores para processamento síncrono ou assíncrono de transações, todos com alta robustez e confiabilidade, usamos mecanismos de log que permitem um perfeito monitoramento da operação, inclusive integrando com ferramentas SNMP.

Sigilo e confidencialidade total em todos os nossos projetos.

Desenvolvemos soluções customizadas para atender exatamente às suas necessidades.