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

Oracle exp/imp 高級選項實戰:分卷導出、增量備份與 SYSDBA 傳輸

     編輯:Oracle 資料庫基礎

面對 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 僅作驗證。

二、增量導出/導入:Oracle 9i 前的歷史遺產

⚠️ 關鍵限制:

  • Oracle 9i 起 exp 不再支持 inctype 參數
  • 僅 SYS 或 SYSTEM 權限可執行
  • 現代環境請改用 RMAN 增量備份 或 Data Pump

歷史參考三類模式:

類型含義命令示例
完全全庫基線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

  • SYSTEM:導入系統對象
  • RESTORE:導入所有用戶對象

三、SYSDBA 模式導出導入:表空間傳輸專用

用於 可傳輸表空間(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')

關鍵點:

  • SQL*Plus 中執行需三重引號包裹 userid
  • 8.1.6+ 版本強制要求 SYSDBA
  • 命令必須單行執行
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved