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

Oracle Data Pump 高速匯出/匯入實戰指南(10g 新特性)

     編輯:Oracle 資料庫基礎

Data Pump vs 传统 Exp/Imp

  • 採用專用 API 而非 SQL 指令,直接讀寫伺服器端檔案
  • 測試環境:匯出效能提升 10-15 倍,匯入提升 5 倍
  • 支援物件類型篩選(如僅匯出 Procedure)

核心概念:目錄物件

轉儲檔寫在資料庫伺服器端,需建立目錄物件對應 OS 路徑:

CREATE DIRECTORY DPDATA1 AS '/U02/DPDATA1';
GRANT READ, WRITE ON DIRECTORY DPDATA1 TO ANANDA;

Data Pump 匯出 (EXPDP)

EXPDP ANANDA/ABC123 TABLES=CASES DIRECTORY=DPDATA1
DUMPFILE=EXPCASES.DMP JOB_NAME=CASES_EXPORT
  • JOB_NAME:對應主控制表,作業期間存在,完成自動刪除
  • 預設目錄 DPUMP_DIR,可自行建立替代

監控進行中作業

執行期間按 Ctrl+C 進入互動模式 (EXPORT>):

EXPORT> STATUS
JOB: CASES_EXPORT
OPERATION: EXPORT
MODE: TABLE
STATE: EXECUTING
DEGREE: 1
DUMP FILE: /U02/DPDATA1/EXPCASES.DMP
BYTES WRITTEN: 2048
WORKER 1 STATUS: EXECUTING, OBJECT: CASES, COMPLETED ROWS: 4687818

輸入 CONTINUE_CLIENT 回復畫面輸出。

平行操作加速

EXPDP ANANDA/ABC123 TABLES=CASES DIRECTORY=DPDATA1
DUMPFILE=EXPCASES_%U.DMP PARALLEL=4 JOB_NAME=CASES_EXPORT
  • %U 通配符自動產生 EXPCASES_01.DMP、02.DMP...
  • 每個 Worker 產生一檔,狀態畫面顯示 4 Workers 同步進度
  • 需確保資料檔與轉儲目錄在不同 I/O 通道,否則平行效益可能被管理開銷抵銷

資料庫層面監控視圖

  • DBA_DATAPUMP_JOBS:作業與平行度
  • DBA_DATAPUMP_SESSIONS + V$SESSION:前景進程 SID
  • 警示日誌記錄 DM00 (Master)、DW01/DW02 (Worker) 進程 PID
  • V$SESSION_LONGOPS:預估剩餘時間

Data Pump 匯入 (IMPDP)

IMPDP ANANDA/ABC123 DIRECTORY=DPDATA1
DUMPFILE=EXPCASES.DMP JOB_NAME=CASES_IMPORT
  • 預設建立物件,若已存在報錯
  • 追加資料用:TABLE_EXISTS_ACTION=APPEND
  • 同樣支援 Ctrl+C 進入 IMPORT> 互動模式

物件類型篩選

  • 僅匯出 Procedure:INCLUDE=PROCEDURE
  • 指定物件:INCLUDE=PROCEDURE:"='PROC1'",FUNCTION:"='FUNC1'"
  • 產生 DDL 腳本:IMPDP ... SQLFILE=PROCS.SQL (不實際匯入,僅輸出腳本)
  • INCLUDE=TABLE:"LIKE 'TAB%'" / EXCLUDE=... 支援模式比對

進階功能

支援傳輸表空間、即時調整平行度、動態增加表至進行中作業等。

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