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

Oracle 10g Data Pump 深度解析:expdp/impdp 進階特效與 PL/SQL 自動化

     編輯:Oracle 資料庫基礎

Data Pump 架構優勢:伺服器端並行處理

Oracle 10g 重新設計匯出/匯入工具為 Data Pump(expdp/impdp),核心差異在於作業在資料庫內部執行,而非傳統用戶端進程。這帶來三大優勢:

  • 作業獨立於啟動用戶端進程,可跨機器監控(如排程啟動、筆電監控)。
  • 需先建立 DIRECTORY 物件對應作業系統路徑,再授權給使用者。
  • 支援 PARALLEL 多執行緒並行,大幅縮短匯出時間。

基本操作:建立目錄與匯出

CREATE OR REPLACE DIRECTORY dumpdir AS 'c:\';
GRANT READ, WRITE ON DIRECTORY dumpdir TO scott;

expdp scott/tiger directory=dumpdir dumpfile=scott.dmp

互動式作業控制

  • Ctrl+C:中斷用戶端連線,後台作業持續執行,進入 Export> 提示模式。
  • status:查看目前作業狀態。
  • expdp attach=<job_name>:重新連接執行中的作業。

進階特效:網路匯入與並行處理

跨資料庫直接匯入 (NETWORK_LINK)

無需中繼檔案,透過 Database Link 直接將物件複製至遠端資料庫:

expdp scott/tiger directory=dumpdir dumpfile=scott2.dmp parallel=4 job_name=scott2

輸出範例顯示 4 個 Worker 並行處理,Current Parallelism: 4。

PL/SQL API 自動化:DBMS_DATAPUMP

所有命令列工具底層均呼叫 DBMS_DATAPUMP 套件,可直接在 PL/SQL 中編寫自動化腳本:

DECLARE
  h NUMBER;
BEGIN
  h := dbms_datapump.open('EXPORT','SCHEMA');
  dbms_datapump.add_file(h,'SCOTT3.DMP','DUMPDIR');
  dbms_datapump.metadata_filter(h,'SCHEMA_EXPR','= ''SCOTT''');
  dbms_datapump.set_parallel(h,4);
  dbms_datapump.start_job(h);
  dbms_datapump.detach(h);
END;
/

其他實用功能

  • 匯入時重新命名檔案、移動物件至不同表空間。
  • 支援萬用字元篩選物件。
  • 作為外部表介面,可直接查詢匯出檔案內容(類似 Oracle Loader)。

Data Pump 是 10g 之後資料遷移、備份自動化的核心工具,掌握其並行與 API 能力可顯著提升運維效率。

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