創建db_link,遠程導出/導入。expdp/impdp Oracle資料庫本地磁碟空間有限,或應用系統的需要,會通過遠程的方式導出資料庫。在oracle當中,exp遠程導庫的速度太慢,而expdp又無法直接通過遠程導庫。因此需要創建db_link遠程連接後,才能使用expdp遠程導庫。詳細步驟如 ...
創建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;