首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 10g Data Pump 實戰:DB Link 跨庫遷移、Remap Tablespace/Schema 完整範例

     編輯:Oracle 資料庫基礎

Oracle 10g 引入 Data Pump (EXPDP/IMPDP),取代傳統 EXP/IMP,支援**伺服器端並行、網路模式、Remap 功能**。本文聚焦最實用的 DB Link 直接跨庫匯入 與 Remap Tablespace/Schema 兩大場景,提供可直接執行的指令範本。

前置作業:建立 Directory 與授權

-- 伺服器端建立目錄物件(指向 OS 實際路徑)
CREATE DIRECTORY dump_dir AS '/u01/dmdir';
GRANT READ, WRITE ON DIRECTORY dump_dir TO scott;
SELECT * FROM dba_directories;

場景一:DB Link 直接匯入,Remap Tablespace(表空間不同名)

impdp scott/tiger@target_db \
  LOGFILE=DUP_MCMDB.LOG \
  NETWORK_LINK=to_crm_7 \
  SCHEMAS=MCMDB \
  REMAP_TABLESPACE=table_space11:table_space12,table_space21:table_space22
  • NETWORK_LINK:指向來源 DB 的 DB Link(需預先建立)。
  • REMAP_TABLESPACE:來源:目標 對照,多組用逗號分隔。
  • **無需匯出檔案**,直接來源讀取 → 目標寫入,節省磁碟 I/O 與時間。

場景二:DB Link 直接匯入,Remap Schema(Schema 名稱不同)

impdp scott/tiger@target_db \
  LOGFILE=DUP_MCMDB.LOG \
  NETWORK_LINK=to_crm_7 \
  SCHEMAS=MCMDB \
  REMAP_SCHEMA=MCMDB:MCMDB1
  • 將來源 MCMDB 物件直接建立在目標 MCMDB1 Schema 下。
  • 目標 Schema 需預先建立並授權 RESOURCE, CONNECT, UNLIMITED TABLESPACE。

EXPDP/IMPDP vs EXP/IMP 關鍵差異

項目EXP/IMPEXPDP/IMPDP
執行端Client/Server 皆可**僅 Server 端**
並行度單執行緒PARALLEL=4 多執行緒
網路模式不支援支援 NETWORK_LINK
Remap 功能無REMAP_TABLESPACE/SCHEMA/TABLE
檔案相容僅 EXP 檔僅 EXPDP 檔(二進制不相容)
查詢介面無DBA_DATAPUMP_JOBS 監控進度

四種匯出模式

-- 1. 表模式
expdp scott/tiger TABLES=emp,dept DIRECTORY=dump_dir DUMPFILE=tables.dmp

-- 2. Schema 模式
expdp scott/tiger SCHEMAS=scott DIRECTORY=dump_dir DUMPFILE=schema.dmp

-- 3. 表空間模式
expdp system/manager TABLESPACES=users,example DIRECTORY=dump_dir DUMPFILE=tbs.dmp

-- 4. 全庫模式
expdp system/manager FULL=Y DIRECTORY=dump_dir DUMPFILE=full.dmp

常用參數速查

參數說明範例
PARALLEL並行工作者數4
COMPRESSION壓縮算法METADATA_ONLY / ALL
ENCRYPTION加密ALL / DATA_ONLY / ENCRYPTED_COLUMNS_ONLY
ESTIMATE_ONLY預估大小不實際匯出Y
FLASHBACK_TIME一致性時間點SYSDATE
QUERY表級 WHERE 條件'emp:"WHERE deptno=10"'
INCLUDE/EXCLUDE物件類型過濾INCLUDE=TABLE:"LIKE 'EMP%'"

監控進行中 Job

SELECT job_name, state, degree, attached_sessions
FROM dba_datapump_jobs
WHERE job_name = 'SYS_IMPORT_FULL_01';

遷移檢查清單

  • [ ] 來源/目標版本相容(10g→11g→12c→19c 向上相容)。
  • [ ] DB Link 雙向通暢,TNSPING 正常。
  • [ ] 目標表空間預先建立,配額足夠。
  • [ ] 目標 Schema 建立並授權。
  • [ ] 測試環境先跑 ESTIMATE_ONLY=Y 確認大小與時間。

善用 NETWORK_LINK + REMAP_*,即可實現**零落地檔案、跨表空間/Schema、並行高速**的異構遷移,是 Data Pump 最殺手級的功能組合。

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