如何使用dblink或网络链接从远程数据库导入架构

时间:2016-01-12 08:30:09

标签: oracle oracle11g

我创建了一个网络链接,如下所示:

CREATE PUBLIC DATABASE LINK "remote_lab2"
 CONNECT TO system
 IDENTIFIED BY itl
 USING '(DESCRIPTION =
      (ADDRESS_LIST =
          (ADDRESS =
            (PROTOCOL = TCP)
            (Host = 192.168.5.43)
            (Port = 1521)
          )
      )
      (CONNECT_DATA = (SID = orcl)
      )
  )';

我可以使用以下查询在远程数据库上进行查询:

select * from bill@remote_lab; //fetches rows in the table 'bill'

但我想将所有架构导入为DUMP文件。为此,我在D:驱动器中创建了一个名为mydump的目录。但我不知道如何将所有架构作为转储文件从远程数据库导入到我的本地系统?

更新:创建网络链接后,我可以使用以下命令在远程系统上的默认目录DATA_PUMP_DIR中创建转储文件:

expdp VTMOLAP2/vtmolap2 schemas=VTMOLAP2 network_link=remote_lab directory=DATA_PUMP_DIR dumpfile=vtm.dmp logfile=vtm.log;

现在我需要将转储文件导入到我的本地系统。我该怎么办?

1 个答案:

答案 0 :(得分:3)

您需要使用 Network import

使用网络模式导入时,不需要任何中间转储文件。数据通过数据库链接导出,并直接导入目标数据库。

例如,

SQL> create user new_scott identified by tiger;
User created.

SQL> grant connect, resource to new_scott;
Grant succeeded.

SQL> grant read, write on directory dmpdir to new_scott;
Grant succeeded.

SQL> grant create database link to new_scott;
Grant succeeded.

SQL> conn new_Scott/tiger
Connected.

SQL> create database link old_scott connect to scott identified by tiger using 'orcl';
Database link created.

impdp new_scott/tiger DIRECTORY=dmpdir NETWORK_LINK=old_scott remap_schema=scott:new_scott