【问题标题】:Copy Oracle table from one database to other database without DBLink在没有 DBLink 的情况下将 Oracle 表从一个数据库复制到另一个数据库
【发布时间】:2026-02-07 04:20:06
【问题描述】:

我需要将表从一个 oracle 数据库复制到另一个 oracle 数据库。我正在使用 SQLLDR,因为我没有数据库链接。

由于表非常大(大约 160 GB),提取平面文件中的数据大约需要 4-5 小时,我在 unix 机器上也面临存储问题,通过 sqlldr 加载也需要很多时间。

谁能帮我解决这个问题?

【问题讨论】:

    标签: database oracle sql-loader


    【解决方案1】:

    如果您使用的是 Oracle 10G(或更高版本),则可以利用 Oracle Data Pump 实用程序,该实用程序允许您即时导出/导入压缩数据库。根据 Oracle 数据库版本,您可以查看官方 Oracle 文档,其中包含如何执行数据库导出/导入操作的示例。

    【讨论】:

    • 谢谢。但我没有权限在 SQL Plus 中创建目录。您对此还有其他选择吗?
    【解决方案2】:

    通过 sql、输出或假脱机将数据提取到 unix 命名管道并立即启动另一个会话,并从命名管道加载 sqlldr ...

    user@box> mkfifo my.fifo.pipe
    user@box> sqlplus -s user/pwd@sourceservice @script-spooling-to-my.fifo.pipe
    
    <ANOTHER UNIX SESSION>
    user@box> sqlldr userid=user/pwd@destinationservice control=.... data=my.fifo.pipe 
    

    【讨论】:

    【解决方案3】:

    如果您不能使用 DBLinks 并且不能使用数据泵,您可以使用 ETL 工具,例如 Pentaho Data Integration 或其他,作为一个简单的选项。

    【讨论】:

      最近更新 更多