将表从一个数据库导出到另一个服务器上的另一个数据库

时间:2014-03-31 14:32:45

标签: sql database oracle oracle11g datapump

我想将表从一台服务器上的数据库导出到另一台服务器上的另一台数据库。

这是我的设置:

  1. Oracle 11g数据库:internal@10.0.0.1
  2. Oracle 11g XE:external@10.0.0.50
  3. 我找到的命令用于在同一个数据库中导出/导入表:

    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
    

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

2 个答案:

答案 0 :(得分:1)

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

链接应指向源数据库。

在TARGET DB上(数据将在此数据库中导入)

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>... 

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

希望它有所帮助!

答案 1 :(得分:0)

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

  • 在serverA上执行expdp
  • 使用scp(linux)或copy(win)将转储文件传输到ServerB
  • 在ServerB上的impdp

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