exp 導出、imp 導入——這是 Oracle DBA 必須肌肉記憶的兩條命令。本文提供 CMD/Shell 下的標準操作流程、導出導入核心指令、表空間與用戶建立範本、常見遺忘點清單,適合貼在工位牆上速查。
Win+R → cmd / ssh oracle@hosttnsping CAPAA(確認 Listener 存活、服務名正確)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 時)。tnsping CAPAA 確認連通。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:大緩衝區加速。-- 業務資料表空間
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;
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 ...;
| 遺忘點 | 後果 | 預防 |
|---|---|---|
| 輸入 export 而非 exp | Shell 內建指令報錯 | 肌肉記憶:exp/imp 只有 3 字母 |
| 未先 tnsping | 連線失敗浪費時間 | 流程第 1 步固定 tnsping |
| 導入未加 IGNORE=Y | 表存在報錯停止 | 參數檔模板預設 IGNORE=Y |
| 大表未加 COMPRESS=N | 匯入失敗 ORA-01658 | 導出參數檔預設 COMPRESS=N |
| 未建立目標表空間/用戶 | 導入報 ORA-01917/00959 | 導入前清單第 1 項:建表空間/用戶 |
| 字符集未對齊 | 中文亂碼/截斷 | 客戶端 NLS_LANG=目標庫字符集 |