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