【问题标题】:Transferring data between different DBMS's在不同 DBMS 之间传输数据
【发布时间】:2011-03-01 07:20:16
【问题描述】:

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

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

有人知道有什么好的程序可以做这种工作吗?

【问题讨论】:

  • 感谢您的回答,但我需要informix 支持,这是一种将informix 迁移到其他数据库的工具。

标签: sql-server database oracle informix


【解决方案1】:

PentahoData IntegrationETL 工具可作为开源工具(也以以前的名称“Kettle”而闻名)用于跨数据库迁移和许多其他用例。

来自他们的数据表:

常见用例

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

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

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

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

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

        祝你好运:)

        【讨论】:

          【解决方案5】:

          sqlldr - Oracle 的导入实用程序

          以下是我将 50TB 数据从 MySQL 传输到 ORacle 的过程。从 MySql 生成 csv 文件并使用 oracle 中的 sqlldr 实用程序将文件中的所有数据导出到 oracle db。这是导入数据的最快方式。我对此进行了几周的研究并完成了许多基准测试用例,而 sqlldr 是导入 oracle 的最佳、最快的方法。

          【讨论】: