Oracle 實例擁有多個後台進程,其中 SMON (System Monitor) 與 ARCH (Archiver) 雖屬「小角色」,卻對資料完整性、效能穩定性影響深遠。本文系統整理兩者職責、關鍵參數與調優策略,助 DBA 掌握核心運作細節。
字典管理表空間的 PCTINCREASE 直接影響 SMON 整理行為:
PCTINCREASE = 0:SMON 不會 自動合併該表空間碎片,DBA 必須手動 ALTER TABLESPACE ... COALESCE 或匯出/匯入重組。PCTINCREASE > 0:SMON 依排程自動合併碎片。建議:除非特殊需求(如精確控制延伸區大小),否則勿設為 0。局部管理表空間 (LMT) 已透過位圖自動管理空間,不受此參數影響。
EXEC DBMS_SYSTEM.KSDWRT(1, 'SMON');(需謹慎)。LOG_ARCHIVE_MAX_PROCESSES (1~30,預設 1,9i 最高 10)。較大的日誌檔 → 切換頻率降低 → ARCH 啟動間隔拉長 → 系統暫停機率降低。建議根據尖峰產生日誌量,規劃單組日誌可支撐 15~30 分鐘。
NOLOGGING 操作(如 CREATE TABLE ... NOLOGGING, INSERT /*+ APPEND */)減少重做產生。| 進程 | 核心職責 | 關鍵參數 | 調優重點 |
|---|---|---|---|
| SMON | 碎片合併、執行個體恢復、臨時段清理 | PCTINCREASE (字典管理表空間) | 避免設 0;改用 LMT 自動管理空間 |
| ARCH | 重做日誌歸檔,支援時間點恢復 | LOG_ARCHIVE_MAX_PROCESSES、日誌檔大小 | 多進程並行、適度增大日誌檔、大量載入暫用 NOLOGGING |
SMON 與 ARCH 雖不如 DBWR、LGWR 顯眼,卻是資料安全與效能穩定的基石。DBA 應熟悉其運作細節,配合參數調整與操作策略,讓資料庫在高負載與異常情境下依然穩健運行。