一、環境說明
來源資料庫:
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的步驟.