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

Oracle Export/Import 深度解析:跨平台遷移、碎片整理與版本相容性全攻略

     編輯:Oracle 資料庫基礎

核心應用場景

  • 同/異版本、同/異 OS 平台間資料遷移
  • 邏輯備份與災難恢復
  • Schema/表空間間物件遷移

Dump 檔特性

  • 二進位格式,嚴禁手工編輯,否則導致資料損毀。
  • 跨平台相容:Oracle 7 Dump 可導入 Oracle 8,但版本差距過大可能失敗。
  • 向上相容:低版本 Export 檔可用高版本 Import 工具讀取。

匯出模式與物件範圍

模式包含物件
TABLE單表定義、資料、授權、索引、約束、觸發器
USER該使用者所有表、叢集、DB Link、Sequence、View、同義詞、Procedure 等
FULL含 PUBLIC SYNONYM、使用者/角色定義、回滾段、表空間定義、系統權限、審計選項等完整資料庫結構

Import 匯入順序(依賴關係驅動)

  1. Tablespaces → Profiles → Users → Roles → System Privileges → Role Grants
  2. Tablespace Quotas → Rollback Segments → DB Links → Sequences → Snapshots
  3. Tables (含授權/索引/約束) → Referential Integrity → Post-table Actions
  4. 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 選項會使記憶體中未持久化的值遺漏,僅從字典取當前值匯出。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved