Data Pump 架構優勢
- Server-side 作業,效能遠高於 Client-side 的 EXP/IMP
- 支援並行 (PARALLEL)、壓縮 (COMPRESSION)、網路模式 (NETWORK_LINK)
- 可匯出/匯入特定物件類型、Schema、表、分區
前置作業:建立 Directory 物件與授權
-- 必須以 SYSDBA 執行
CREATE OR REPLACE DIRECTORY dpump_dir AS '/u01/dpump';
-- Windows 範例:'D:\dpump'
-- 授予讀寫權限
GRANT READ, WRITE ON DIRECTORY dpump_dir TO scott;
-- 或授予角色
GRANT READ, WRITE ON DIRECTORY dpump_dir TO exp_full_database;
Directory 物件為邏輯別名,對應 OS 實體目錄,Oracle 進程需有該目錄讀寫權限。
常用 EXPDP 匯出範例
| 需求 | 指令 |
| 完整資料庫 | expdp system/xxx@orcl DIRECTORY=dpump_dir DUMPFILE=full_%U.dmp LOGFILE=full.log FULL=Y PARALLEL=4 |
| 單一 Schema | expdp scott/tiger@orcl DIRECTORY=dpump_dir DUMPFILE=scott.dmp LOGFILE=scott.log SCHEMAS=SCOTT |
| 特定表 | expdp scott/tiger@orcl DIRECTORY=dpump_dir DUMPFILE=emp_dept.dmp TABLES=EMP,DEPT |
| 查詢條件匯出 | expdp scott/tiger@orcl DIRECTORY=dpump_dir DUMPFILE=emp_10.dmp QUERY=EMP:\"WHERE deptno=10\" |
| 僅中繼資料 | expdp scott/tiger@orcl DIRECTORY=dpump_dir DUMPFILE=meta.dmp CONTENT=METADATA_ONLY |
| 排除統計資訊 | expdp ... EXCLUDE=STATISTICS |
常用 IMPDP 匯入範例
| 需求 | 指令 |
| 完整匯入 | impdp system/xxx@orcl DIRECTORY=dpump_dir DUMPFILE=full.dmp LOGFILE=imp_full.log FULL=Y |
| Schema 重映射 | impdp system/xxx@orcl DIRECTORY=dpump_dir DUMPFILE=scott.dmp REMAP_SCHEMA=SCOTT:SCOTT_NEW |
| 表空間重映射 | impdp ... REMAP_TABLESPACE=USERS:USERS_NEW |
| 表重命名 | impdp ... REMAP_TABLE=SCOTT.EMP:EMP_NEW |
| 僅建立結構 | impdp ... CONTENT=METADATA_ONLY |
| 忽略已存在錯誤 | impdp ... TABLE_EXISTS_ACTION=SKIP (或 APPEND/TRUNCATE/REPLACE) |
| 網路模式直傳 | impdp target/target@tgt DIRECTORY=dpump_dir NETWORK_LINK=src_link SCHEMAS=SCOTT |
監控與管理
-- 查看作業狀態
SELECT * FROM dba_datapump_jobs;
SELECT * FROM dba_datapump_sessions;
-- 附加到執行中作業
expdp system/xxx@orcl ATTACH=SYS_EXPORT_FULL_01
-- 互動模式指令:STATUS、CONTINUE_CLIENT、KILL_JOB、STOP_JOB
-- 停止/重啟作業
expdp system/xxx@orcl STOP_JOB=SYS_EXPORT_FULL_01
expdp system/xxx@orcl START_JOB=SYS_EXPORT_FULL_01
常見問題
- ORA-39002/39070:Directory 路徑不存在或權限不足 → 檢查 OS 層面權限
- ORA-31684:物件類型不支援 → 確認版本相容性
- 版本向下相容:11g 匯出檔可用 12c/19c 匯入;反向需用
VERSION=11.2 參數