首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle impdp NETWORK_LINK 直接跨庫匯入實戰指南

     編輯:Oracle 資料庫相關知識

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

完整配置步驟

1. 目標庫建立 TNS 別名指向來源庫

# $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

2. 目標庫建立 DB Link

-- 以 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;

3. 目標庫建立 Directory 物件

-- 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;

4. 執行 impdp 匯入

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_ACTIONSKIP/APPEND/TRUNCATE/REPLACE 處理既有表
EXCLUDE=STATISTICS排除統計資訊加速匯入
PARALLEL=4並行度 (Enterprise Edition)

避坑指南

  • 來源/目標庫版本相容性:目標版本 ≥ 來源版本,或同版本。
  • DB Link 使用者需具備 DATAPUMP_EXP_FULL_DATABASE / IMP_FULL_DATABASE 角色。
  • 大表匯入建議先 EXCLUDE=INDEX,CONSTRAINT,匯入後再建立,大幅縮短時間。
  • 網路不穩定時加 COMPRESSION=ALL 減少傳輸量。

掌握 NETWORK_LINK,跨庫遷移不再需要中間 dump 檔,一條指令搞定。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved