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

Oracle 匯入匯出(IMP/EXP)完整指南:命令語法、參數詳解、Data Pump 現代化升級路徑

     編輯:Oracle 資料庫基礎

傳統 IMP/EXP 是 Oracle 早期邏輯備份工具,10g 起被 Data Pump (IMPDP/EXPDP) 取代。本文整理舊工具完整語法、常用參數、實戰範例,並指引遷移至 Data Pump 的關鍵差異。

傳統 EXP 匯出語法與關鍵參數

exp userid/password@service
    FILE=backup.dmp
    TABLES=(table1,table2)
    QUERY="WHERE created_date > SYSDATE-30"
    BUFFER=8192
    GRANTS=Y
    COMPRESS=N
    CONSISTENT=Y
    LOG=exp.log
參數說明建議值
FILE匯出檔名(支援多檔 FILE=exp1.dmp,exp2.dmp)含日期時間戳 exp_20240115.dmp
TABLES指定表清單(預設全用戶)僅匯出必要表,減小檔案
QUERY附加 WHERE 條件(需雙引號)增量匯出利器
BUFFER資料緩衝區大小(bytes)8192~65536,視記憶體
GRANTS是否匯出權限Y
COMPRESS是否合併 extent(舊版相容)N(現代 LMT 表空間無需)
CONSISTENT交易一致性讀(SET TRANSACTION READ ONLY)Y(生產環境必開)
FULL全資料庫匯出(需 EXP_FULL_DATABASE 役)Y(完整備份)
OWNER指定用戶(Schema 模式)替代 TABLES

傳統 IMP 匯入語法與關鍵參數

imp userid/password@service
    FILE=backup.dmp
    FROMUSER=src_user
    TOUSER=target_user
    TABLES=(table1,table2)
    IGNORE=Y
    COMMIT=Y
    GRANTS=Y
    FULL=Y
    LOG=imp.log
參數說明建議值
IGNORE忽略建立錯誤(表已存在),僅匯入資料Y(重複匯入必開)
COMMIT每匯入一個陣列提交Y(避免大交易回滾段不足)
FROMUSER/TOUSERSchema 重映射跨環境部署必用
INDEXFILE僅產生索引建立腳本,不匯入資料檢視索引結構用
SHOW僅顯示匯入內容,不實際匯入Y(預演)

實戰範例集

1. 完整資料庫備份(每日)

exp system/manager@PROD FULL=Y FILE=/backup/exp_full_%Y%m%d.dmp LOG=/backup/exp_full_%Y%m%d.log CONSISTENT=Y

2. 單表增量匯出(每小時)

exp app_user/pwd@PROD TABLES=orders QUERY="WHERE order_date >= TRUNC(SYSDATE,'HH')" FILE=/backup/exp_orders_inc.dmp LOG=/backup/exp_orders_inc.log

3. 跨 Schema 匯入(測試環境部署)

imp test_user/pwd@TEST FILE=/backup/exp_prod.dmp FROMUSER=prod_user TOUSER=test_user IGNORE=Y COMMIT=Y LOG=/backup/imp_test.log

Data Pump (EXPDP/IMPDP) 關鍵升級差異

特性EXP/IMPEXPDP/IMPDP
執行位置客戶端進程伺服器端進程(需 DIRECTORY 物件)
平行度不支援PARALLEL=4 多執行緒加速
網路模式不支援NETWORK_LINK 直接跨庫傳輸
壓縮無COMPRESSION=ALL/METADATA_ONLY
過濾QUERY 參數INCLUDE/EXCLUDE 物件級、SAMPLE 取樣
重映射FROMUSER/TOUSERREMAP_SCHEMA, REMAP_TABLESPACE, REMAP_TABLE
互動模式支援支援(ATTACH/CONTINUE_CLIENT)

Data Pump 典型指令

-- 建立目錄物件(需 DBA)
CREATE OR REPLACE DIRECTORY dpump_dir AS '/u01/dpump';
GRANT READ, WRITE ON DIRECTORY dpump_dir TO app_user;

-- 匯出
expdp app_user/pwd@PROD DIRECTORY=dpump_dir DUMPFILE=exp_%U.dmp LOGFILE=exp.log PARALLEL=4 COMPRESSION=ALL

-- 匯入(Schema 重映射 + 表空間重映射)
impdp test_user/pwd@TEST DIRECTORY=dpump_dir DUMPFILE=exp_01.dmp LOGFILE=imp.log REMAP_SCHEMA=prod_user:test_user REMAP_TABLESPACE=PROD_DATA:TEST_DATA TABLE_EXISTS_ACTION=REPLACE

遷移檢查清單

  • ✅ 建立 DIRECTORY 物件指向共享儲存(ASM/NFS/本地磁碟)。
  • ✅ 授予執行用戶 READ, WRITE 權限。
  • ✅ 將舊 EXP 腳本改寫為 EXPDP,驗證匯入結果一致性。
  • ✅ 利用 PARALLEL、COMPRESSION 縮短備份窗口。
  • ✅ 納入 RMAN 備份策略,邏輯備份為輔助,不可替代物理備份。

全面升級至 Data Pump,享受伺服器端並行、壓縮、網路模式、靈活重映射帶來的備份/遷移效能飛躍。

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