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

Oracle 資料庫備份恢復基礎命令大全:Exp/Imp 三模式、三工作方式、參數檔最佳實踐

     編輯:Oracle 資料庫基礎

前言:Exp/Imp 是邏輯備份的基石

雖有 RMAN 物理備份、Data Pump 高效並行,但 exp/imp 以跨版本、跨平台、無依賴、操作簡單的特性,仍是邏輯備份、Schema 遷移、測試環境刷新的首選。本文系統整理三種工作方式、三大匯出模式、參數檔標準化、常用指令速查表。

一、三種工作方式

方式啟動命令適用場景優/缺點
互動式exp / imp臨時、一次性、參數少直觀但不可重複、不可自動化
命令列exp user/pwd@db FILE=xxx.dmp FULL=Y固定參數、排程作業簡單但參數長難維護、密碼顯示在進程列
參數檔(推薦)exp PARFILE=exp.par生產環境、複雜參數、團隊協作參數與腳本分離、易版控、密碼可寫在檔案(權限 600)

二、三大匯出/匯入模式

1. 表模式

# 導出指定表
exp user/pwd FILE=/backup/t1.dmp LOG=t1.log TABLES=TABLE1,TABLE2

# 導出表部分資料 (QUERY)
exp user/pwd FILE=/backup/t1_part.dmp LOG=t1_part.log \
TABLES=TABLE1 QUERY="WHERE CREATED_DT > SYSDATE-30"

# 導入指定表
imp user/pwd FILE=/backup/t1.dmp LOG=imp_t1.log TABLES=TABLE1,TABLE2 \
FROMUSER=SRC_SCHEMA TOUSER=TGT_SCHEMA COMMIT=Y IGNORE=Y

2. 用戶/Schema 模式

# 導出指定 Schema 所有物件
exp user/pwd FILE=/backup/schema.dmp LOG=schema.log OWNER=(SCHEMA1,SCHEMA2)

# 僅導出結構 (無資料)
exp user/pwd FILE=/backup/schema_struct.dmp LOG=schema_struct.log OWNER=SCHEMA1 ROWS=N

# 導入 Schema (含重映射)
imp user/pwd FILE=/backup/schema.dmp LOG=imp_schema.log \
FROMUSER=SRC_SCHEMA TOUSER=TGT_SCHEMA COMMIT=Y IGNORE=Y

3. 全庫模式

# 導出全庫 (需 EXP_FULL_DATABASE)
exp user/pwd FILE=/backup/full.dmp LOG=full.log FULL=Y COMMIT=Y IGNORE=Y

# 導入全庫
imp user/pwd FILE=/backup/full.dmp LOG=imp_full.log \
FROMUSER=SRC_SCHEMA TOUSER=TGT_SCHEMA COMMIT=Y IGNORE=Y

三、參數檔標準化範本

Exp 參數檔 (exp_std.par)

USERID=user/password
BUFFER=32000000
COMPRESS=N
GRANTS=Y
INDEXES=Y
CONSTRAINTS=Y
TRIGGERS=Y
ROWS=Y
STATISTICS=NONE
FILE=/backup/exp_&DATE.dmp
LOG=/backup/exp_&DATE.log
# 視模式啟用下列之一:
# FULL=Y
# OWNER=SCHEMA1,SCHEMA2
# TABLES=TABLE1,TABLE2
# QUERY="WHERE ..."

Imp 參數檔 (imp_std.par)

USERID=user/password
BUFFER=64000000
COMMIT=Y
IGNORE=Y
FEEDBACK=50000
STATISTICS=NONE
SKIP_UNUSABLE_INDEXES=Y
GRANTS=Y
INDEXES=Y
CONSTRAINTS=Y
ROWS=Y
FILE=/backup/exp_20240115.dmp
LOG=/backup/imp_20240115.log
# 視場景啟用:
# FULL=Y
# FROMUSER=SRC TOUSER=TGT
# TABLES=TABLE1,TABLE2

四、關鍵參數決策表

參數Exp 建議Imp 建議核心理由
COMPRESSN-避免大表匯入需連續巨大 Extent 失敗
DIRECT大表 Y (無 LONG/LOB)-Direct Path 繞過 SQL 層,速度 2-5 倍
CONSISTENT跨表一致性 Y-大量 Undo 消耗,視業務必要性開啟
STATISTICSNONENONE避免過時統計誤導執行計劃,遷移後重收
BUFFER32M-64M64M-128M大緩衝區顯著減少 I/O 往返
IGNORE-Y表存在不報錯,支援重跑/續傳
COMMIT-Y陣列提交,減少 Undo/Redo 壓力
SKIP_UNUSABLE_INDEXES-大表 Y跳過不可用索引維護,巨大加速

五、常用指令速查卡

# 幫助
exp help=y
imp help=y

# 全量備份 (生產標準)
exp system/xxx PARFILE=exp_full.par
imp system/xxx PARFILE=imp_full.par

# Schema 遷移 (含重映射)
exp system/xxx PARFILE=exp_schema.par  # OWNER=APP
imp system/xxx PARFILE=imp_schema.par  # FROMUSER=APP TOUSER=APP_NEW

# 單表備份/恢復
exp app/app PARFILE=exp_table.par      # TABLES=ORDERS
imp app/app PARFILE=imp_table.par      # TABLES=ORDERS FROMUSER=APP TOUSER=APP

# 結構遷移 (無資料)
exp system/xxx FILE=struct.dmp OWNER=APP ROWS=N
imp system/xxx FILE=struct.dmp FROMUSER=APP TOUSER=APP ROWS=N

六、版本與字符集鐵律

  • Imp 版本 ≥ Exp 版本(向上相容)。
  • 目標字符集為來源超集最安全(ZHS16GBK → AL32UTF8)。
  • 客戶端 NLS_LANG = 目標庫字符集。

結語

Exp/Ip 基礎命令雖經典,但參數檔標準化、三模式靈活切換、關鍵參數決策表(COMPRESS=N/STATISTICS=NONE/IGNORE=Y/COMMIT=Y/BUFFER大)才是生產可用的核心資產。將本文速查卡、參數檔模板納入團隊知識庫,新人也能零失誤完成邏輯備份與遷移。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved