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>:重新連接執行中的作業。無需中繼檔案,透過 Database Link 直接將物件複製至遠端資料庫:
expdp scott/tiger directory=dumpdir dumpfile=scott2.dmp parallel=4 job_name=scott2
輸出範例顯示 4 個 Worker 並行處理,Current Parallelism: 4。
所有命令列工具底層均呼叫 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;
/
Data Pump 是 10g 之後資料遷移、備份自動化的核心工具,掌握其並行與 API 能力可顯著提升運維效率。