1

我想将位于一台服务器上的数据库中的表导出到位于另一台服务器上的另一个数据库。

这是我的设置:

  1. Oracle 11g 数据库:internal@10.0.0.1
  2. Oracle 11g XE:external@10.0.0.50

我找到的命令用于在同一数据库中导出/导入表:

expdp user/password dumpfile=hr.dmp directory=dmpdir schemas=hr logfile=
hr_exp.log

impdp user/password dumpfile=hr.dmp directory=dmpdir schemas=hr logfile=hr_imp.log

关于如何解决这个问题的任何想法或提示?

4

2 回答 2

1

为了补充上述答案,您还可以在目标服务器上使用 network_link 选项。这不需要任何目录访问权限,并允许通过链接在目标服务器上进行导入。

该链接应指向源数据库。

在目标数据库上(数据将导入此数据库)

connect user/password@target
CREATE DATABASE LINK sourceHR CONNECT TO hr IDENTIFIED BY hrpassword USING 'tns2source';
impdp user/password@target network_link=sourceHR tables=<table1>... 

如果您省略表,它将是源模式上所有对象的模式级导入。

希望能帮助到你!

于 2014-03-31T18:07:19.463 回答
1

Datapump 只是一个服务器端工具,这意味着您必须使转储文件可访问 serverB 才能导入。

  • 在 serverA 上做你的 expdp
  • 使用 scp (linux) 或 copy (win) 将转储文件传输到 ServerB
  • 服务器 B 上的 impdp

另一种选择是让您的目录对象指向一个可从 serverA 和 serverB 访问的公共区域。

于 2014-03-31T17:40:43.553 回答