4

我正在尝试用两个数据库复制数据,并且都位于不同的服务器上。两者都是 Oracle 10g。

在我的电脑上,我通过 Toad 连接到实时数据库,并且我的电脑上安装了 10g 客户端。

通过 Toad 我试图导出数据转储文件,但在我的电脑上我找不到 expdp.exe 文件,我认为我的电脑上没有安装这个组件。

如何在我的电脑上安装 expdp.exe?

我可以在我的电脑(网络)而不是服务器上导出数据转储文件吗?

默认情况下,转储文件会复制到服务器上,但我可以将它们复制并粘贴到我的电脑上,然后使用这些文件通过 Toad 在不同的服务器上导入数据。

4

4 回答 4

3

Oracle 数据泵导出/导入的文件只能与 Oracle 数据库驻留在同一台服务器上。如果您的 PC 上安装了 Oracle 客户端,您应该有 expdp/impdp 实用程序。只需确保从命令行调用它们,而不是从 Toad。

所以,总结一下。要将数据从一台 Oracle 服务器传输到另一台:

  • 从您的 PC 运行 expdp
  • 将转储文件从服务器复制到您的 PC;当你在它的时候抓住生成的日志文件可能是明智的
  • 将转储文件从您的 PC 复制到另一台服务器
  • 从您的 PC 运行 impdp
于 2012-06-08T12:34:18.063 回答
3

正如其他人已经提到的那样,您 DataPump 不能使用数据库服务器之外的文件。

但是,您不需要在本地安装 expdp 和 impdp 实用程序。您可以使用DBMS_DATAPUMP 包通过 SQL 启动 DataPump 作业

以下是有关如何使用该软件包的一些示例:

于 2012-06-08T17:12:48.890 回答
2

与导入和导出转储文件相比,数据泵实用程序将在两个数据库之间移动模式和数据。Oracle 推荐它作为 imp 和 exp 的继承者。

  • 验证目录 DATA_PUMP_DIR 是否存在或创建它。
  • 在目标数据库上使用或创建对该目录具有读写权限和 DBA 权限的用户
  • 验证或创建从目标到源的数据库链接
  • 在目标数据库上删除您希望重新创建其架构和数据的用户
  • 在目标数据库上运行这样的脚本

    SET NLS_LANG= 你的语言

    SET ORACLE_SID = 您的数据库名称

    impdp import_user/destination_database_name directory=DATA_PUMP_DIR network_link=link_name schemas= user1,user2 LOGFILE=Import.log TABLE_EXISTS_ACTION=REPLACE

这是 Windows 语法,对于 Linux 会有所不同。替换您的数据库名称、模式和链接名称。

于 2012-06-08T12:44:54.750 回答
2

对于此处显示的情况,imp/exp 和 impdp/expdp 之间的唯一区别是 .dmp 文件的结束位置。如果您在 PC 上使用 exp,则该文件将在您的 PC 上,您不必将其从 Oracle 服务器中移动。在我们的商店中,只有 DBA 可以访问服务器,所以我使用的是 exp。

于 2012-12-12T15:09:48.600 回答