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

Oracle Exp/Imp 快速上手:CMD 下導出導入標準流程與表空間/用戶建立範本

     編輯:Oracle 資料庫基礎

前言:兩條命令,跑通遷移主流程

exp 導出、imp 導入——這是 Oracle DBA 必須肌肉記憶的兩條命令。本文提供 CMD/Shell 下的標準操作流程、導出導入核心指令、表空間與用戶建立範本、常見遺忘點清單,適合貼在工位牆上速查。

一、導出標準流程 (CMD/Shell)

  1. 開啟命令列:Win+R → cmd / ssh oracle@host
  2. 測試網路連通:tnsping CAPAA(確認 Listener 存活、服務名正確)
  3. 執行導出:
exp admin/password@CAPAA FILE=D:backup.dmp FULL=Y LOG=exp_backup.log

關鍵提醒:

  • 命令是 exp 不是 export(後者是 Shell 內建變數指令,會報錯)。
  • FULL=Y 需 EXP_FULL_DATABASE 權限;Schema 級用 OWNER=schema。
  • 大表加 BUFFER=64000000 COMPRESS=N DIRECT=Y(不含 LONG/LOB 時)。

二、導入標準流程 (CMD/Shell)

  1. 同樣先 tnsping CAPAA 確認連通。
  2. 執行導入:
imp admin/password@CAPAA FILE=D:backup.dmp FULL=Y LOG=imp_backup.log IGNORE=Y COMMIT=Y

關鍵參數:

  • IGNORE=Y:表已存在時跳過建立錯誤,繼續載入資料。
  • COMMIT=Y:陣列提交,減少 Undo 消耗,避免大交易回滾失敗。
  • BUFFER=64000000:大緩衝區加速。

三、表空間與用戶建立範本(導入前必備)

1. 建立表空間

-- 業務資料表空間
CREATE TABLESPACE CAPAA
  DATAFILE 'D:\oradata\CAPAA\capaa01.dbf' SIZE 1G
  AUTOEXTEND ON NEXT 512M MAXSIZE 32G
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE
  SEGMENT SPACE MANAGEMENT AUTO
  DEFAULT COMPRESS FOR OLTP;

-- 索引表空間(分離存放提升 IO)
CREATE TABLESPACE CAPAA_IDX
  DATAFILE 'D:\oradata\CAPAA\capaa_idx01.dbf' SIZE 512M
  AUTOEXTEND ON NEXT 256M MAXSIZE 16G
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE
  SEGMENT SPACE MANAGEMENT AUTO;

2. 建立用戶並授權

CREATE USER admin IDENTIFIED BY password
  DEFAULT TABLESPACE CAPAA
  TEMPORARY TABLESPACE TEMP
  QUOTA UNLIMITED ON CAPAA
  QUOTA UNLIMITED ON CAPAA_IDX;

-- 開發/測試環境簡化授權
GRANT DBA TO admin;
-- 生產環境最小權限
GRANT CREATE SESSION, RESOURCE TO admin;
GRANT CREATE VIEW, CREATE MATERIALIZED VIEW TO admin;
GRANT CREATE PROCEDURE, CREATE SEQUENCE, CREATE TRIGGER TO admin;
GRANT UNLIMITED TABLESPACE TO admin;

四、一個實例多應用:表空間隔離架構

單一資料庫實例支援多應用,建議每應用一表空間組(資料+索引),每應用一用戶:

-- 應用 A
CREATE TABLESPACE APP_A_DATA DATAFILE '...' SIZE 1G AUTOEXTEND ON ...;
CREATE TABLESPACE APP_A_IDX  DATAFILE '...' SIZE 512M AUTOEXTEND ON ...;
CREATE USER app_a IDENTIFIED BY xxx DEFAULT TABLESPACE APP_A_DATA TEMPORARY TABLESPACE TEMP QUOTA UNLIMITED ON APP_A_DATA QUOTA UNLIMITED ON APP_A_IDX;

-- 應用 B
CREATE TABLESPACE APP_B_DATA ...;
CREATE TABLESPACE APP_B_IDX ...;
CREATE USER app_b ...;
  • 物理隔離:IO、空間、備份粒度獨立。
  • 邏輯隔離:用戶權限、配額、審計獨立。
  • 遷移靈活:單應用 TTS 遷移不影響其他應用。

五、常見遺忘點速查表

六、速記卡(貼牆版)

# 導出
exp user/pwd@SID FILE=xxx.dmp FULL=Y LOG=exp.log BUFFER=64M COMPRESS=N

# 導入
imp user/pwd@SID FILE=xxx.dmp FULL=Y LOG=imp.log IGNORE=Y COMMIT=Y BUFFER=64M

# 表空間
CREATE TABLESPACE ts DATAFILE 'path' SIZE 1G AUTOEXTEND ON NEXT 512M MAXSIZE 32G
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE SEGMENT SPACE MANAGEMENT AUTO;

# 用戶
CREATE USER u IDENTIFIED BY pwd DEFAULT TABLESPACE ts TEMPORARY TABLESPACE TEMP QUOTA UNLIMITED ON ts;
GRANT RESOURCE, CREATE SESSION TO u;

結語

Exp/Imp 只有兩條主命令,但參數順序不重要、參數檔最穩健、IGNORE=Y/COMMIT=Y/COMPRESS=N/BUFFER大 是四大護身符。將本文「速記卡」存為桌面便利貼,下次遷移不再搜尋歷史指令。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
遺忘點後果預防
輸入 export 而非 expShell 內建指令報錯肌肉記憶:exp/imp 只有 3 字母
未先 tnsping連線失敗浪費時間流程第 1 步固定 tnsping
導入未加 IGNORE=Y表存在報錯停止參數檔模板預設 IGNORE=Y
大表未加 COMPRESS=N匯入失敗 ORA-01658導出參數檔預設 COMPRESS=N
未建立目標表空間/用戶導入報 ORA-01917/00959導入前清單第 1 項:建表空間/用戶
字符集未對齊中文亂碼/截斷客戶端 NLS_LANG=目標庫字符集