CREATE ROLLBACK SEGMENT big_rbs STORAGE (INITIAL 1G NEXT 1G MAXEXTENTS UNLIMITED);SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE NOARCHIVELOG;
ALTER DATABASE OPEN;
導入期間關閉歸檔,消除歸檔寫入開銷。導入後立即切回ARCHIVELOG並全備。
Thread 1 cannot allocate new log → 擴大或增加組Rollback段、數據表空間、Redo Log、導出文件分佈在不同物理磁盤/RAID組,消除I/O爭用。
LOG_CHECKPOINT_INTERVAL = <最大Redo Log文件大小(OS块數)>
-- 例如 4GB Redo, 512B/block → 8,388,608
將Checkpoint頻率降至最低(僅Log Switch觸發),減少DBWR寫入壓力。
SORT_AREA_SIZE = 10M ~ 100M (視內存而定)
-- 監控交換/分頁,出現則調小
加速索引創建、ORDER BY、GROUP BY排序操作。10g+建議用PGA_AGGREGATE_TARGET自動管理。
| 參數 | 推薦值 | 作用原理 |
|---|---|---|
| COMMIT | N | 每表結束提交而非緩衝區滿提交,需大Rollback段支持 |
| BUFFER | 10M-100M | 增加單次讀取量,減少I/O調用次數 |
| INDEXES | N | 跳過索引創建,數據導入後單獨建索引(配合INDEXFILE) |
| INDEXFILE | filename.sql | 導出DDL腳本供後續手工/並行創建索引 |
| PARALLEL | 4-8 (Enterprise) | 並行導入多表/分區表 (需Enterprise Edition) |
| STATISTICS | NONE | 跳過統計信息收集,導入後用DBMS_STATS重收 |
# 1. 環境準備
ALTER DATABASE NOARCHIVELOG;
-- 調整Rollback、Redo、SORT_AREA_SIZE
# 2. 執行導入 (示例)
imp system/password FILE=exp.dmp FULL=Y \
COMMIT=N BUFFER=50000000 INDEXES=N STATISTICS=NONE \
LOG=imp.log
# 3. 後續處理
-- 3.1 創建索引 (並行)
@indexfile.sql -- 修改添加 PARALLEL 4
-- 3.2 收集統計信息
EXEC DBMS_STATS.GATHER_SCHEMA_STATS('SCHEMA_NAME', DEGREE=>4);
-- 3.3 恢復歸檔模式
ALTER DATABASE ARCHIVELOG;
-- 3.4 立即全備份 (RMAN)