Import 與 Export 是 Oracle 資料庫的標準邏輯備份工具組。但在大量資料匯入場景,Import 耗時常達數小時甚至數天,尤其在災難恢復時效要求嚴苛的情境下,預設效能往往無法滿足需求。本文從系統層級、初始化參數、Import 選項三個維度,提供經實戰驗證的優化策略,助您大幅縮短匯入時間。
COMMIT=N 選項使用(見第三節)Thread 1 cannot allocate new log, Checkpoint not complete 表示需擴大或增加日誌檔imp userid=system/manager file=exp.dmp COMMIT=N
imp userid=system/manager file=exp.dmp BUFFER=10485760
imp userid=system/manager file=exp.dmp INDEXES=N INDEXFILE=create_idx.sql
-- 匯入資料完成後
sqlplus system/manager @create_idx.sql
# 1. 系統層面(需重啟資料庫)
ALTER SYSTEM SET DB_BLOCK_SIZE=16384 SCOPE=SPFILE;
ALTER SYSTEM SET LOG_CHECKPOINT_INTERVAL=100000 SCOPE=BOTH;
ALTER SYSTEM SET SORT_AREA_SIZE=104857600 SCOPE=BOTH;
# 2. 建立大型 Rollback 與 Redo
CREATE ROLLBACK SEGMENT big_rbs TABLESPACE rbs STORAGE (INITIAL 2G NEXT 2G);
ALTER ROLLBACK SEGMENT big_rbs ONLINE;
-- 離線其他 rbs
# 3. 匯入命令
imp system/manager file=full_exp.dmp \
COMMIT=N BUFFER=52428800 INDEXES=N INDEXFILE=idx.sql \
LOG=imp.log IGNORE=Y
ANALYZE 或 DBMS_STATS 更新統計資訊Import 效能優化的核心邏輯是:減少 I/O、減少提交、減少日誌、延後索引。三層優化疊加,實測可將百 GB 級匯入時間從十數小時壓縮至數小時內。但每個環境特性不同,請務必以基準測試驗證各參數實際效益,切勿盲目套用。