面對 TB 級大表、跨文件系統限制、歷史版本兼容等場景,exp/imp 高級選項是 DBA 必備利器。本文實戰演示分卷導出導入、增量導出三模式、SYSDBA 權限傳輸表空間的完整操作指南。
單個 dump 文件超過 2GB/4GB 限制時,使用 filesize 參數自動分卷:
# 導出:每卷 1000MB
exp user/pwd file=1.dmp,2.dmp,3.dmp filesize=1000m log=exp.log full=y
# 導入:指定同序列卷文件
imp user/pwd file=1.dmp,2.dmp,3.dmp filesize=1000m \
tables=xxx fromuser=dbuser touser=dbuser2 commit=y ignore=y
注意:導入時卷順序必須與導出一致,filesize 僅作驗證。
⚠️ 關鍵限制:
exp 不再支持 inctype 參數SYS 或 SYSTEM 權限可執行歷史參考三類模式:
| 類型 | 含義 | 命令示例 |
|---|---|---|
| 完全 | 全庫基線 | exp user/pwd file=/dir/xxx.dmp inctype=complete |
| 增量 | 上次任意備份後的變更 | exp user/pwd file=/dir/xxx.dmp inctype=incremental |
| 累計 | 上次「完全」備份後的所有變更 | exp user/pwd file=/dir/xxx.dmp inctype=cumulative |
導入語法:imp usr/pwd FULL=y inctype=system/restore/incremental
用於 可傳輸表空間(TTS) 及 Oracle 技術支持場景:
# 導出元數據
imp 'sys/pwd@inst as sysdba' transport_tablespace=y \
tablespaces=ts_data,ts_idx file=tts.dmp datafiles='ts_data.dbf,ts_idx.dbf'
# 導入元數據
imp file=expdat.dmp userid="sys/pwd as sysdba" \
transport_tablespace=y datafiles=('c:\ts_data.dbf','c:\ts_idx.dbf')
關鍵點: