Objetivo

O projeto visa criar uma cópia de um banco de dados relacional, todavia as atualizações nesses bancos de dados serão realizada em tempo real.

Aplicação

Esse tipo de abordagem é utilizada afim de criar um backup para um banco de dados importante para determidade organização, proporcionar para os desenvolvedores um ambiente de desenvolvimento sem afetar o banco transacional principal. Mesmo assim sem causar perdas de fidelidade e velocidade nos dados do banco transacional.

Metodologia

Para a realização do streaming de dados entre bancos de dados heterogênios, foi utilizado o Oracle GoldenGate. Assim, criamos um Middleware entre a fonte e o destino dos dados. Em virtude do desafio maior ser interligar dois bancos de dados diferentes, iremos utilizar como fonte um banco de dados Oracle e fonte MySQL, pois estes são os bancos de dados mais utilizados na atualidade 1.

Infraestrutura

Para realizamos esse projeto da forma mais realística possível é necessário dois máquinas conectadas em uma rede de computadores. Para simularmos isso foi utilizada duas máquinas virtuais com Linux Redhat, ambas conectadas em na mesma rede.

  • Fonte:

  • Destino:

Assim para realizar a interface entre os BD (Bando de Dados), foi utilizado o GoldenGate conectando os duas máquinas pela rede, conforme figura abaixo:

Exemplo de funcionamento

Para verificarmos o funcionamento da replicação em tempo real, vamos utilizar os consoles dos BD's para verificar preexistentes.

  • Fonte (ORACLE):

  • Destino (MYSQL):

Após verificarmos que os dois bancos de dados estão vazios, vamos adicionar alguns registros no banco de dados fonte (Oracle) e verificar os resultados no destino (MySQL):

  • Fonte:

  • Destino:

Vamos deletar um registro para verificar se a replicação acontece nesse caso também:

  • Fonte:

  • Destino:

Pode-se perceber pelas imagens que removemos uma linha no banco de dados fonte e essa alteração foi realizada no banco destino.

Conclusão

Como pode-se notar, com o Oracle GoldenGate é possível realizar a replicação de dados transacionais com qualidade e velocidade. Com a vantagem de não sobrecarregar a rede, pois carrega somente as atualizações realizadas nos arquivos de log do banco de dados fonte para o destino. Desta forma, evitando aqueles processos de ETL demorados e pesados que causam lentidão na rede coorporativa.