Preciso de uma maneira de replicar dados temporariamente entre dois data centers em dois continentes para um pequeno número de tabelas grandes no Oracle. Os dados nas tabelas estão em torno de 30 Gb, mas a taxa de transferência é de apenas 5 Gb/hora.
Eu acho que os dados não mudam muito no dia a dia.
Que opções temos para replicar os dados que são simples e econômicos para esse requisito de curto prazo?
Esclarecimentos
- Temporariamente, ou seja, dois meses
- Um subconjunto do banco de dados, 2 ou três tabelas grandes
- De uma maneira, até que o banco de dados seja migrado para o novo datacenter
Das soluções gratuitas, só consigo pensar em lançar a sua própria com um gatilho em um link de banco de dados ou configurar fluxos.
Eu configuraria streams.
Se você estiver usando a edição corporativa do banco de dados, parece que você pode usar Streams ou visualizações materializadas para replicar os dados.
O Streams funciona minerando de forma assíncrona os dados de redo que são gerados no sistema de origem para localizar alterações nas tabelas em questão, que são entregues ao banco de dados de destino usando o Advanced Queues (AQ) da Oracle. Streams é geralmente a arquitetura preferida-- é a tecnologia mais nova, gera menos carga no sistema de origem, não envolve a criação de novos objetos no sistema de origem e tem menor latência. A desvantagem do Streams é que pode haver uma quantidade decente de trabalho administrativo para configurar e trabalhar com o Streams, dependendo da(s) versão(ões) do Oracle envolvida.
Visualizações materializadas são uma tecnologia de replicação mais antiga que aparentemente também atenderia às suas necessidades. O trabalho de visualizações materializadas também pode replicar alterações, mas elas precisam fazer isso registrando os dados alterados em logs de visualizações materializadas que são criados nas tabelas que você deseja replicar. No sistema de origem, você precisaria criar logs de visualização materializada nas tabelas que deseja replicar - esses logs seriam gravados automaticamente quando as alterações fossem feitas na tabela, mas essas gravações seriam sincronizadas com a transação, portanto, isso poderia afetar
INSERT
eUPDATE
atuação. No lado do destino, você criaria uma visualização materializada que faria uma atualização incremental em um cronograma definido (ou seja, a cada poucos minutos) que leria os dados dos logs de visualização materializada, puxaria os dados pela rede e atualizaria a visualização materializada cópia dos dados. Visualizações materializadas tendem a ser mais fáceis de configurar, mas não são tão eficientes e a exigência de criar logs de visualização materializada no banco de dados de origem pode ser um ponto de discórdia.Qualquer solução é relativamente fácil de desligar em 2 meses, quando você não precisa mais da replicação.