oracle impdp network_link引數使用介紹

531968912發表於2016-06-21
一、環境說明
源資料庫:
IP地址:192.168.137.100
sid:catalog
使用者名稱:rman
密碼:rman
目標資料庫:
IP地址:192.168.137.101
sid:orcl
使用者名稱:rman
密碼:rman

二、在目標資料庫上建立到源資料庫的tnsname
用oracle使用者登入目標資料庫,修改 $ORACLE_HOME/network/admin/tnsnames.ora檔案,增加如下內容
複製程式碼 程式碼如下:

catalog =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.137.100)(PORT = 1521))
)
(CONNECT_DATA =
(SID = catalog)
)
)

修改完這個檔案之後,執行如下命令,測試建立的tnsname是否正確
$ tnsping catalog
如果返回結果的最後是 OK (0 msec),證明tnsname建立成功,執行下一步操作

三、建立 dblink
建立dblink的語句為
CREATE DATABASE LINK <database link name> CONNECT TO <remote database user name> IDENTIFIED BY <remote database password> USING '<tnsname connect to remote>'
用oracle使用者身份登入目標資料庫伺服器,執行如下操作
複製程式碼 程式碼如下:

$ sqlplus rman/rman
sql> CREATE DATABASE LINK dmp_link CONNECT TO rman IDENTIFIED BY rman USING 'catalog';

*************************************
如果出現
複製程式碼 程式碼如下:

ERROR at line 1:
ORA-01031: insufficient privileges

需要用sysdba身份,執行如下語句,將建立dblink的許可權授予使用者,然後再次執行上面建立dblink的語句
grant create database link to rman;
*************************************
然後執行如下語句,測試dblink是否建立成功,能返回結果證明dblink建立成功
複製程式碼 程式碼如下:

SQL> select tname from tab@dmp_link;
SQL> exit;


四、在目標資料庫上建立directory物件
以oracle使用者登入目標資料庫
1、建立一個目錄,假設為 /oracle/dmp,並保證這個目錄oracle使用者可讀寫
2、以sysdba身份登入資料庫,建立directory物件,並給這個物件賦予讀寫許可權
3、然後登入資料庫,執行如下語句:
複製程式碼 程式碼如下:

$ sqlplus / as sysdba
sql> create or replace directory dmp_dir as '/oracle/dmp';
sql> grant read,write on directory dmp_dir to public;
sql> exit;

五、在目標資料庫上執行impdp命令,匯入資料
impdp rman/rman/orcl network_link=dmp_link remp_schema=source_schema:target:shcema remap_tablespace=source_tablespace:target:tablespace
如果想不生成dmp檔案而直接匯入一個資料庫,直接使用impdp帶network_link ,這樣可以直接impdp,而繞過了expdp的步驟. 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25462274/viewspace-2120553/,如需轉載,請註明出處,否則將追究法律責任。

相關文章