Replicar o Oracle para o MySQL

3

Estou desenvolvendo um aplicativo da web, este aplicativo da web estará usando o MySQL.

Agora eu preciso replicar o banco de dados Oracle do meu cliente para o MySQL , apenas algumas tabelas estarão envolvidas ... uma tabela pode ter até 2-3 milhões de linhas.

Eu só tenho privilégio SELECT neste Oracle, então não me peça para instalar qualquer tipo de serviço na máquina Oracle. Eu tenho controle total no lado do MySQL, no entanto.

A replicação é apenas de um jeito (Oracle para MySQL). Eu posso escrever um script simples para truncar a tabela MySQL e repovoá-la todas as noites, mas acho que isso é muito ineficiente, deve haver uma maneira melhor.

Existe alguma ferramenta gratuita que eu possa usar? O caro sistema de replicação de banco de dados está definitivamente fora de questão.

    
por Rosdi 01.05.2010 / 20:44

2 respostas

1

Se você estiver desenvolvendo um webapp de qualquer maneira, eu também criaria um script php / asp / whatever que consulta as tabelas oracle e importa os dados que você quer para o mysql - a cada X minutos / horas (cron ou windows service).

Você pode acompanhar os dados que foram importados na última execução, salvando o último item importado (chave única da tabela oracle ('id')) em uma tabela mysql "especial" que indicará de onde você parou e dados que agora precisam ser importados.

    
por 02.05.2010 / 01:39
0

Parece que você pode estar limitado a truncar e preencher apenas com SELECT.

Por acaso, os registros têm um registro de data e hora para informar quando eles foram alterados pela última vez?

Se você não tiver nenhum outro acesso, não estou pensando que eles estejam dispostos a configurar algo como o recurso Change Data Capture da Oracle. Se eles configurassem isso para você, você poderia fazer um despejo inicial da tabela e, em seguida, ler incrementalmente as alterações da Tabela de Mudanças associada, depois limpar a Tabela de Mudanças quando terminasse. Muito rolar o seu próprio. Uma introdução ao CDC está aqui: link .. Você só precisa selecionar o acesso à tabela de alterações associada à sua tabela Oracle e capacidade de limpar as alterações depois de aplicá-las ao seu banco de dados.

Um produto que eu costumava usar ($$$, portanto não entrarei em detalhes, mas é um produto relacionado ao Oracle Golden Gate) faz uma soma de verificação primeiro nas linhas de origem e de destino e, em seguida, nas cópias que são diferentes. Isso leva algum poder de processamento para gerar as somas de verificação, mas pode reduzir bastante a quantidade de dados movida pelo fio.

    
por 03.05.2010 / 15:54