首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle 資料庫導出導入實戰:從全庫到單表、條件導出與跨 Schema 遷移

     編輯:Oracle 資料庫相關知識

導出 (EXP) 經典場景

場景命令範例
全庫導出EXP SCOTT/TIGER@TEST FILE=D:TESTDB.DMP FULL=Y
單表導出EXP SCOTT/TIGER@TEST FILE=D:TESTDB.DMP TABLES=(EMP)
多表導出EXP USER/PWD@DB FILE=TABS.DMP TABLES=(EMP,DEPT,SALGRADE)
條件導出EXP SCOTT/TIGER@TEST FILE=D:TESTDB.DMP TABLES=(EMP) QUERY="WHERE DEPTNO=10"
壓縮導出EXP ... COMPRESS=Y(僅調整 EXTENT,建議 OS 壓縮 .DMP)

導入 (IMP) 經典場景

場景命令範例
全庫導入IMP SCOTT/TIGER@TEST FILE=D:TESTDB.DMP FULL=Y IGNORE=Y
單表導入IMP SCOTT/TIGER@TEST FILE=D:TESTDB.DMP TABLES=(EMP)
跨 Schema 遷移IMP SYSTEM/PWD@DB FROMUSER=OLD TOUSER=NEW FILE=EXP.DMP IGNORE=Y
Parfile 參數檔IMP PARFILE=IMPORT.PAR(見下)

Parfile 範例

FROMUSER=OLD_SCHEMA
TOUSER=NEW_SCHEMA
ROWS=Y
INDEXES=Y
GRANTS=Y
CONSTRAINTS=Y
BUFFER=409600
FILE=/BACKUP/EXP.DMP
LOG=/BACKUP/IMP.LOG

前置準備:用戶與權限

-- 級聯刪除舊用戶
DROP USER SCOTT CASCADE;

-- 建立新用戶
CREATE USER SCOTT IDENTIFIED BY TIGER;
GRANT DBA TO SCOTT;  -- 僅演示用,生產請最小權限

實戰技巧

  • IGNORE=Y:忽略「物件已存在」錯誤,資料仍會載入
  • 導入前先 TRUNCATE TABLE 或 DROP TABLE 避免主鍵衝突
  • 大量導入前設定 COMMIT=Y、BUFFER 大值、INDEXES=N 導入後再建索引
  • 跨版本導入:低版本 EXP → 高版本 IMP 通常相容,反向需用 Data Pump

現代化建議

Oracle 10g+ **強烈建議改用 Data Pump (EXPDP/IMPDP)**:

  • 支援並行 (PARALLEL=4) 大幅提速
  • 網路模式 (NETWORK_LINK) 免落地 .DMP
  • 細粒度過濾 (INCLUDE/EXCLUDE)、壓縮 (COMPRESSION=ALL)、加密 (ENCRYPTION)
  • 可中斷恢復、即時進度監控
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved