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

Oracle EXP/IMP 導出導入完整實戰指南:互動/非互動模式、三種模式、自動化備份排程

     編輯:Oracle 資料庫基礎

工具定位與架構

exp.exe/imp.exe 位於 $ORACLE_HOME/bin,為 Oracle 官方邏輯備份工具。exp 將資料庫物件與資料序列化為二進位 .dmp 檔;imp 讀取 .dmp 重建物件並載入資料。支援三種模式:

  • 用戶模式:導出/導入特定 Schema 所有物件
  • 表模式:導出/導入指定表或分區
  • 全庫模式:導出/導入整個資料庫(需 EXP_FULL_DATABASE/IMP_FULL_DATABASE 角色)

互動模式操作範例

導出互動

$ exp scott/tiger@ORCL
Enter array fetch buffer size: 4096 > [Enter]
Export file: expdat.dmp > scott_backup.dmp
(1)E(ntire database), (2)U(sers), or (3)T(ables): (2)U > 3
Export table data (yes/no): yes > [Enter]
Compress extents (yes/no): yes > [Enter]
Table(T) or Partition(T:P) to be exported: (RETURN to quit) > emp
. . exporting table EMP  14 rows exported
Table(T) or Partition(T:P) to be exported: (RETURN to quit) > dept
. . exporting table DEPT  4 rows exported
Table(T) or Partition(T:P) to be exported: (RETURN to quit) > [Enter]
Export terminated successfully without warnings.

導入互動

$ imp scott/tiger@ORCL
Import file: expdat.dmp > scott_backup.dmp
Import table data (yes/no): yes > [Enter]
Ignore create errors (yes/no): no > yes
Import grants (yes/no): yes > [Enter]
Import full export file (yes/no): no > yes
. . importing table EMP  14 rows imported
. . importing table DEPT  4 rows imported
Import terminated successfully with warnings.

非互動模式(腳本化標準)

導出常用指令

# 1. 全庫導出
exp system/manager@ORCL file=/backup/full.dmp full=y log=/backup/full.log

# 2. 多 Schema 導出
exp system/manager@ORCL file=/backup/multi.dmp owner=(scott,hr,oe) log=/backup/multi.log

# 3. 指定表導出
exp scott/tiger@ORCL file=/backup/tables.dmp tables=(emp,dept,bonus) log=/backup/tables.log

# 4. 條件導出(WHERE 子句)
exp system/manager@ORCL file=/backup/emp_recent.dmp \
  tables=(emp) query="WHERE hiredate > SYSDATE-30" log=/backup/emp_recent.log

導入常用指令

# 1. 全庫導入(忽略物件存在錯誤)
imp system/manager@ORCL file=/backup/full.dmp full=y ignore=y log=/backup/imp_full.log

# 2. 指定表導入
imp scott/tiger@ORCL file=/backup/tables.dmp tables=(emp,dept) log=/backup/imp_tables.log

# 3. 換 Schema 導入(需參數檔)
# import.par 內容見上文 96015

自動化備份排程(Windows 任務排程器)

備份批次檔 ora_full_backup.bat

@echo off
set ORACLE_SID=ORCL
set BACKUP_DIR=D:\oracle_backup
set DATE_STR=%date:~-4,4%%date:~-10,2%%date:~-7,2%
exp system/manager@ORCL file=%BACKUP_DIR%\full_%DATE_STR%.dmp full=y log=%BACKUP_DIR%\full_%DATE_STR%.log
rem 可選:壓縮
"C:\Program Files\7-Zip\7z.exe" a -tzip %BACKUP_DIR%\full_%DATE_STR%.zip %BACKUP_DIR%\full_%DATE_STR%.dmp
del %BACKUP_DIR%\full_%DATE_STR%.dmp

排程設定步驟

  1. 控制台 → 系統與安全性 → 管理工具 → 工作排程器
  2. 建立基本任務 → 名稱:Oracle_Full_Backup → 觸發:每日 02:00
  3. 動作:啟動程式 → cmd.exe → 參數:/c D:\scripts\ora_full_backup.bat
  4. 完成,以最高權限執行,勾選「無論使用者是否登入都要執行」。

恢復策略建議

  • 每日全備 + 每小時增量(匯出近期異動表)或改用 RMAN 區塊級增量備份。
  • 異地複製 .dmp/.zip 至備援資料中心/雲端儲存。
  • 季度演練:在測試環境完整還原並驗證應用功能。
  • 不建議 直接排程 imp 進行自動還原,資料覆蓋風險極高,人工確認不可省略。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved