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

Oracle 10g Data Pump 進階:impdp 完整參數實戰與 Job 管理精要

     編輯:Oracle 資料庫基礎

impdp 四大匯入模式實戰指令

1. 匯入表 (TABLES)

# 同綱要匯入
impdp scott/tiger DIRECTORY=dump_dir DUMPFILE=tab.dmp TABLES=dept,emp

# 跨綱要匯入 (必須 REMAP_SCHEMA)
impdp system/manager DIRECTORY=dump_dir DUMPFILE=tab.dmp \
  TABLES=scott.dept,scott.emp REMAP_SCHEMA=SCOTT:SYSTEM

2. 匯入綱要 (SCHEMAS)

impdp scott/tiger DIRECTORY=dump_dir DUMPFILE=schema.dmp SCHEMAS=scott
impdp system/manager DIRECTORY=dump_dir DUMPFILE=schema.dmp \
  SCHEMAS=scott REMAP_SCHEMA=scott:system

3. 匯入表空間 (TABLESPACES)

impdp system/manager DIRECTORY=dump_dir DUMPFILE=tablespace.dmp TABLESPACES=user01

4. 完整匯入 (FULL)

impdp system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=Y

Data Pump Job 核心特性:可暫停、可續傳、可監控

expdp/impdp 透過 DBMS_DATAPUMP API 在資料庫內部建立 Job,**脫離客戶端進程獨立運行**。

互動模式控制流程

# 1. 啟動並命名 Job
expdp test/test@acf directory=dpdata dumpfile=full.dmp full=y job_name=expfull

# 2. 執行中 Ctrl+C 退出互動模式 → Job 繼續背景運行
# 3. 重新連接 Job
expdp test/test@acf attach=expfull

# 4. 命令模式操作
Export> status           # 查看進度
Export> stop_job         # 正常停止 (提示確認 y/n)
Export> stop_job=immediate # 強制立即停止
Export> start_job        # 恢復運行
Export> start_job=skip_current # 跳過停止點當前步驟
Export> continue_client  # 返回記錄模式
Export> exit_client      # 離開但 Job 保持運行
Export> kill_job         # 徹底刪除 Job (不可恢復)
Export> parallel=8       # 動態調整並行度

監控與管理視圖

-- 所有 Data Pump Jobs
SELECT * FROM dba_datapump_jobs;

-- Job 對應的 Session (可用於 Kill Session)
SELECT s.sid, s.serial#
FROM v$session s, dba_datapump_sessions d
WHERE s.saddr = d.saddr;

互動命令完整速查表

命令縮寫說明
CONTINUE_CLIENTCC返回記錄模式;空閒時重啟 Job
EXIT_CLIENTEC退出客戶端,Job 保持運行
HELPH顯示命令摘要
KILL_JOBKJ分離並刪除 Job (資料可能不一致)
PARALLEL <n>P <n>變更作用中 Worker 數量
START_JOBSJ啟動/恢復 Job
START_JOB=SKIP_CURRENT-啟動前跳過停止時正在執行的操作
STATUS [=interval]ST顯示狀態;interval 為刷新秒數 (預設 0 即顯示一次)
STOP_JOB-順序關閉 Job 並退出客戶端
STOP_JOB=IMMEDIATE-立即關閉 Job

實務最佳實踐

  1. 必須指定 JOB_NAME:便於後續 ATTACH 管理,避免產生無名 Job 難以追蹤。
  2. 大量資料啟用並行:PARALLEL=4 (視 CPU 核心) + DUMPFILE=exp_%U.dmp (多檔案並行寫入/讀取)。
  3. 跨版本/跨平台首選 NETWORK_LINK:免轉儲檔、免傳輸、自動處理字元集轉換。
  4. 重對應參數驗證:REMAP_TABLESPACE、REMAP_SCHEMA、REMAP_DATAFILE、TRANSFORM=SEGMENT_ATTRIBUTES:N (忽略儲存屬性) —— 測試環境先跑通。
  5. 定期清理殘留 Job:DBA_DATAPUMP_JOBS 中狀態為 NOT RUNNING 且非預期者應 KILL_JOB 釋放資源。
  6. 安全性:Data Pump 需 DATAPUMP_EXP_FULL_DATABASE/DATAPUMP_IMP_FULL_DATABASE 角色,遵循最小權限原則授予。

常見坑點提醒

  • impdp **無法讀取 exp 產生的 .dmp** 檔,反之亦然。
  • 匯入時若目標物件已存在,預設報錯;可用 TABLE_EXISTS_ACTION=SKIP|APPEND|TRUNCATE|REPLACE 控制。
  • 網路模式需來源端建立 DB Link 並授予 DATAPUMP_EXP_FULL_DATABASE。
  • 11g+ VERSION=12 參數可產生相容舊版本轉儲檔。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved