[Oracle] Data Pump 详细使用教程(4)- network_link

时间:2023-03-09 07:45:05
[Oracle] Data Pump 详细使用教程(4)- network_link

[Oracle] Data Pump 详细使用教程(1)- 总览

[Oracle] Data Pump 详细使用教程(2)- 总览

[Oracle] Data Pump 详细使用教程(3)- 总览

[Oracle] Data Pump 详细使用教程(4)- 总览

[Oracle] Data Pump 详细使用教程(5)- 总览

expdp的network_link


我们知道,expdp默认是导出本地数据库,network_link的作用是导出远程数据库到本地服务器上,其步骤如下:

术语说明:
源数据库:远程数据库
目标数据库:本地数据库(即expdp客户端所在的服务器)

1. 在目标数据库端添加源数据库的连接字符串至tnsnames.ora:
source_db =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.15)(PORT = 1521))
)
(CONNECT_DATA =
(sid = orcl)
)
)

2. 在目标数据库创建db link:

SQL>create public database link source_db_link connect to system identified by *** using 'test15';

Database link created.

SQL>select instance_name from v$instance@source_db;

INSTANCE_NAME
----------------
orcl

3. 在目标服务器执行expdp:

$ expdp system directory=dump_dir network_link=test15 tables=test.test dumpfile=test.dmp logfile=expdp_test.log

其中network_link等于第2步上创建的db link,dumpfile,logfile放在目标数据库的dump_dir


impdp的network_link

上面提到的expdp的network_link是把远程数据库导出至本地的dumpfile,而impdp更强大更方便,它可以直接把远程数据库导入至本地数据库,中间甚至没有dumpfile产生,其语法如下:
$ impdp system directory=dump_dir network_link=test15 tables=test.test logfile=impdp_test.log

上面语句直接把test.test表从源数据库导入至目标数据库,中间不产生dumpfile,到会产生logfile(logfile放在目标数据库端的dump_dir里)