在不同的DBMS之间传输数据

时间:2011-03-01 07:20:17

标签: sql-server database oracle informix

我想将Informix中的整个数据库传输到Oracle。我们有一个适用于两个数据库的应用程序,我们的一个客户正在从Informix迁移到Oracle,并且需要将整个数据库传输到Oracle(结构是相同的)。

我们经常需要在oracle / Mssql / Informix之间传输数据,有时只有一个表而不是整个数据库。

有人知道做这种工作的任何好节目吗?

5 个答案:

答案 0 :(得分:4)

Pentaho Data Integration ETL工具可用作跨数据库迁移和许多其他用例的开源(也称为“Kettle”)。

从他们的数据表中:

  

常见用例

     
      
  • 内置支持缓慢变化的数据仓库人口   尺寸,垃圾尺寸
  •   
  • 将数据库导出到文本文件或其他数据库
  •   
  • 将数据导入数据库,范围从文本文件到Excel   表
  •   
  • 数据库应用程序之间的数据迁移
  •   
  • ...
  •   

输入/输出数据格式列表可在此问题的接受答案中找到:Does anybody know the list of Pentaho Data Integration (Kettle) connectors list? 它支持所有带有JDBC驱动程序的数据库,这意味着大多数数据库。

答案 1 :(得分:1)

检查我的这个问题,它包含一些非常好的想法:Searching for (freeware) database migration tool

答案 2 :(得分:1)

您可以试试Oracle Migration Workbench。请参阅http://download.oracle.com/docs/html/B15858_01/toc.htm如果您想定期将Informix数据读入Oracle,使用异构服务可能是更好的选择。检查hs4odbc或dg4odbc,具体取决于您的Oracle版本。

我希望这有帮助, 罗纳德。

答案 3 :(得分:1)

我过去做过这件事,这不是一项微不足道的任务。我们最终将每个表写出到一个管道分隔的平面文件,并使用Oracle SQL Loader将每个表重新加载到Oracle中。有大量的Perl脚本来清​​理源数据和shell脚本,以尽可能地自动化进程并同时运行。

可以出现的问题: 1.选择尽可能唯一的分隔符。 2.尝试尽可能找到尽可能接近Informix的数据类型。即日期与时间戳 3.在转出平面文件之前,尽量让数据尽可能干净。 4. HS很可能太慢..

这是几年前完成的。您可能想要调查可能有助于该过程的Golden Gate(现在由Oracle拥有)软件(GG在我执行时不存在)

另一个想法是使用ETL工具读取Informix并将数据转储到Or​​acle中(想到Informatica)

祝你好运:)

答案 4 :(得分:1)

sqlldr - Oracle的导入实用程序

以下是我将50TB数据从MySQL传输到ORacle所做的工作。从MySql生成的csv文件,并在oracle中使用sqlldr实用程序将文件中的所有数据导出到oracle db。这是导入数据的最快方法。我研究了几个星期并做了很多基准测试用例,sqlldr是最好的导入oracle的最快方式。