impdp NETWORK_LINK 可跳過 expdp 產生 dump 檔,直接透過 DB Link 從來源庫抽取資料匯入目標庫,節省磁碟空間與時間,適合異機遷移、上線同步。
來源庫 (192.168.137.100, SID=catalog)
↓ DB Link (dblink 名: dmp_link)
目標庫 (192.168.137.101, SID=orcl) → impdp NETWORK_LINK=dmp_link
# $ORACLE_HOME/network/admin/tnsnames.ora
catalog =
(DESCRIPTION =
(ADDRESS_LIST = (ADDRESS = (PROTOCOL=TCP)(HOST=192.168.137.100)(PORT=1521)))
(CONNECT_DATA = (SID=catalog))
)
tnsping catalog # 驗證 OK
-- 以 SYS 授權
GRANT CREATE DATABASE LINK TO rman;
-- 以 rman 建立
CREATE DATABASE LINK dmp_link
CONNECT TO rman IDENTIFIED BY rman
USING 'catalog';
-- 驗證
SELECT tname FROM tab@dmp_link;
-- OS 層建立目錄並授權 oracle 讀寫
mkdir -p /oracle/dmp
chown oracle:oinstall /oracle/dmp
-- DB 層
CREATE OR REPLACE DIRECTORY dmp_dir AS '/oracle/dmp';
GRANT READ, WRITE ON DIRECTORY dmp_dir TO PUBLIC;
impdp rman/rman@orcl \
NETWORK_LINK=dmp_link \
REMAP_SCHEMA=source_schema:target_schema \
REMAP_TABLESPACE=source_ts:target_ts \
DIRECTORY=dmp_dir \
LOGFILE=impdp_net.log
| 參數 | 用途 |
|---|---|
REMAP_SCHEMA | 來源 Schema → 目標 Schema 重映射 |
REMAP_TABLESPACE | 來源表空間 → 目標表空間重映射 |
TABLE_EXISTS_ACTION | SKIP/APPEND/TRUNCATE/REPLACE 處理既有表 |
EXCLUDE=STATISTICS | 排除統計資訊加速匯入 |
PARALLEL=4 | 並行度 (Enterprise Edition) |
DATAPUMP_EXP_FULL_DATABASE / IMP_FULL_DATABASE 角色。EXCLUDE=INDEX,CONSTRAINT,匯入後再建立,大幅縮短時間。COMPRESSION=ALL 減少傳輸量。掌握 NETWORK_LINK,跨庫遷移不再需要中間 dump 檔,一條指令搞定。