核心應用場景
- 同/異版本、同/異 OS 平台間資料遷移
- 邏輯備份與災難恢復
- Schema/表空間間物件遷移
Dump 檔特性
- 二進位格式,嚴禁手工編輯,否則導致資料損毀。
- 跨平台相容:Oracle 7 Dump 可導入 Oracle 8,但版本差距過大可能失敗。
- 向上相容:低版本 Export 檔可用高版本 Import 工具讀取。
匯出模式與物件範圍
| 模式 | 包含物件 |
| TABLE | 單表定義、資料、授權、索引、約束、觸發器 |
| USER | 該使用者所有表、叢集、DB Link、Sequence、View、同義詞、Procedure 等 |
| FULL | 含 PUBLIC SYNONYM、使用者/角色定義、回滾段、表空間定義、系統權限、審計選項等完整資料庫結構 |
Import 匯入順序(依賴關係驅動)
- Tablespaces → Profiles → Users → Roles → System Privileges → Role Grants
- Tablespace Quotas → Rollback Segments → DB Links → Sequences → Snapshots
- Tables (含授權/索引/約束) → Referential Integrity → Post-table Actions
- Synonyms → Views → Stored Procedures → Triggers (最後匯入避免觸發)
觸發器最後匯入可避免資料載入時誤觸發。匯入後若有 INVALID Procedure,需手動重新編譯。
版本相容性處理(CATEXP.SQL)
- 舊版導出 → 新版導入:目標庫執行舊版 CATEXP.SQL → 舊版 Exp/Imp → 目標庫執行新版 CATEXP.SQL
- 新版導出 → 舊版導入:目標庫執行新版 CATEXP.SQL → 新版 Exp/Imp → 目標庫執行舊版 CATEXP.SQL
碎片整理與 COMPRESS 陷阱
COMPRESS=Y 會將 INITIAL 設為所有區塊總和,NEXT 不變。若表經大量刪除後匯出,匯入時會嘗試分配巨大初始區塊,可能超過單一資料檔大小導致失敗。建議:
- 匯出前評估實際資料量,酌情關閉 COMPRESS。
- 搭配 LMT(本地管理表空間)降低碎片風險。
跨 Schema/表空間遷移
- TABLE/USER 模式需目標使用者預先存在。
- FULL 模式含
CREATE USER 可自動建立。
- 使用
FROMUSER/TOUSER 參數映射來源/目標 Schema。
Sequence 影響因子
- 匯出時若有 Session 正在取值,可能導致不一致。
CACHE 選項會使記憶體中未持久化的值遺漏,僅從字典取當前值匯出。