Oracle 實例啟動後會啟動多個後台進程,其中 SMON (System Monitor) 與 ARCH (Archiver) 雖體量小,卻關鍵影響資料安全與效能。本文深度解析兩者運作機制、參數控制與調優建議。
ALTER SYSTEM SET EVENTS 'IMMEDIATE TRACE NAME COALESCE LEVEL 1';(10g+ 建議用 DBMS_SPACE_ADMIN)。PCTINCREASE 控制程度擴展增長比例。
EXP/IMP 或 ALTER TABLESPACE ... COALESCE。⚠️
PCTINCREASE = 0僅影響碎片整理,**不影響**崩潰恢復功能。Redo-based recovery 依然正常運作。
| 模式 | 觸發條件 | ARCH 行為 | 資料保護 |
|---|---|---|---|
| NOARCHIVELOG | Redo Log 循環覆寫 | 不啟動 | 無法時間點恢復 |
| ARCHIVELOG | Log Switch 發生 | 啟動,將填滿的 Redo Log 複製到歸檔目的地 | 支援完整恢復、PITR、Data Guard |
LOG_ARCHIVE_DEST_n 指定路徑(本地/遠端/ASM)。頻繁大量 DML → 頻繁 Log Switch → ARCH 壓力大 → LGWR 等待 → 吞吐量下降。
LOG_ARCHIVE_DEST_1='LOCATION=/u01/arch', LOG_ARCHIVE_DEST_2='SERVICE=standby'。LOG_ARCHIVE_MAX_PROCESSES = 4(最大 30,11g+),並行歸檔減少 LGWR 等待。LOG_ARCHIVE_DEST_n='LOCATION=USE_DB_RECOVERY_FILE_DEST' 配合 FRA。ALTER DATABASE NOARCHIVELOG → 載入 → ALTER DATABASE ARCHIVELOG → 立即備份(需停機窗口)。| 項目 | SMON | ARCH |
|---|---|---|
| 啟動條件 | 實例啟動 + 定期喚醒 | 僅 ARCHIVELOG 模式 |
| 核心任務 | 碎片整理、崩潰恢復 | Redo Log 歸檔備份 |
| 效能影響 | 低(背景低優先級) | 高(可能阻塞 LGWR) |
| 關鍵參數 | PCTINCREASE | LOG_ARCHIVE_MAX_PROCESSES, LOG_ARCHIVE_DEST_n |
| 手動干預 | COALESCE / TRACE EVENT | 手動歸檔 ALTER SYSTEM ARCHIVE LOG CURRENT |
理解 SMON 與 ARCH 的運作細節,並根據業務負載調整參數,是打造高可用、高效能 Oracle 環境的基石功課。