tava trabalhando num projeto onde o banco usado era oracle. no meio do projeto decidiram migrar para postgre. acontece que algumas tabelas corporativas não puderam ser migradas e algumas consultas sqls terão que fazer joins em tabelas dos dois bancos. qual a melhor forma de resolver este problema?
- Snapshots externos (feio)
- DBLink (feio)
- Transacional fazendo cargas (+ ou -, mas feio do mesmo jeito)
Sei que não vale, mas: Porque não colocar tudo num banco só?!?
Você mencionou o PostgreSQL (não é Postgre nem potgree nem postigri como já vi escrito).
Se fosse o MS SQL Server, é possível relacionar tabelas em bancos diferentes, se os bancos tiverem drivers ADO disponíveis (ou seja, você pode relacionar uma tabela do MS SQL Server com uma do Oracle).
No caso do PostgreSQL, acho que isso não exista (mas dê uma olhadinha na documentação), ou seja, provavelmente você vai ter de fazer alguns relacionamentos pelo seu programa.
Só uma pergunta: qual foi o motivo pra tirar de um Oracle pra colocar num PostgreSQL?!?
Existe o OTG(Oracle Transparent Gateway) produto da oracle, que faz a interface entre bancos Oracle com os de outros fornecedores. Funciona como se fosse um DBLINK entre dois bancos oracle, mas com bancos bancos distintos.
Mas vou te ser sincero, eu nunca vi isso funcionando.
E não sei se tem essa solução disponível para postgrees.
Acho que a sua realidade seria utilizar servicos separados, sem joins.
Ouvi essas palavras de um DBA Oracle
- Travei um Oracle 2 vezes, e nas duas foi utilizando DBLink
DBLink é uma coisa complicada.
Existem técnicas que auxiliam a otimizar o uso(e acredite elas fazem milagre).
Mas a complexidade é algo a se avaliar.
[quote=peczenyj]Ouvi essas palavras de um DBA Oracle
- Travei um Oracle 2 vezes, e nas duas foi utilizando DBLink[/quote]
É, realmente DB link dá umas travadas mesmo. Principalmente se for de Oracle para outro SGDB. De Oracle pra Oracle é mais performático.
A Paz!