oracle远程导出/导入

 创建db_link,远程导出/导入。expdp/impdp

Oracle数据库本地磁盘空间有限,或应用系统的需要,会通过远程的方式导出数据库。在oracle当中,exp远程导库的速度太慢,而expdp又无法直接通过远程导库。因此需要创建db_link远程连接后,才能使用expdp远程导库。详细步骤如下:

1.在本地库的配置文件中加如配置:

tnames.ora增加
TEST2DB =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 远程主机IP)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = 远程服务名)
)
)

2.创建dblink

SQL> create database link local_test2db connect to system identified by oracle using 'TEST2DB';

Database link created.

SQL> select * from dual@local_test2db;

D
-
X

3.创建导出临时目录:
SQL> create or replace directory dumpdir as '/oradata/dump';

Directory created.

4.授权用户,一般用system用户。
[html] view plain copy 在CODE上查看代码片派生到我的代码片
SQL> grant read,write on directory dumpdir to system;

Grant succeeded.

SQL> conn system/oracle
Connected.
SQL> select * from dual@local_test2db;
D
-
X
SQL> quit

5.远程导出:

按用户:expdp system/oracle network_link=local_test2db directory=dumpdir dumpfile=test.dmp logfile=test.log SCHEMAS=users

6.远程导入:

远程导入,需要将dmp文件拷到远程服务器上,才能导入,否责不可以导入。或者将远程导出的库导入到本地库中,再通过dblink的方式传入远程库,双方都有dblink。

如远程主库磁盘空间有限,无法拷到远程主库磁盘上,比较好的方式是NFS挂载该服务器磁盘到主库磁盘上。再直接导入。

如果通过远程导入方式,可将导出的dmp文件导入到本地库中。然后在另一端DB库中远程插入,如:insert into table select * from table@testdb;

 

posted @ 2017-08-21 17:59  lxplwh  阅读(1602)  评论(0编辑  收藏  举报