创建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;
|