| 模式 | 描述 | 適用場景 |
|---|---|---|
| 單進程 (單用戶) | 單一進程執行所有 Oracle 代碼 + 用戶應用,無獨立進程隔離 | MS-DOS 等單任務 OS、嵌入式輕量部署 |
| 多進程 (多用戶) | 多進程並發執行,每連接用戶對應專用進程,背景進程分工協作 | 所有生產級 Unix/Linux/Windows 部署 |
運行用戶應用 (SQL*Plus、Pro*C、JDBC 客戶端等),發起請求。
處理用戶進程請求:
連接模式:
實例啟動時自動創建,各司其職:
| 進程 | 全稱 | 核心職責 | 關鍵特徵 |
|---|---|---|---|
| DBWn | Database Writer | 將髒塊從緩存寫回數據文件 | 多進程 (DBW0-DBW9)、LRU/檢查點觸發、異步 I/O |
| LGWR | Log Writer | 將 Redo 緩存寫入線上日誌文件 | 單進程、順序寫、COMMIT 強制刷盤、組提交優化 |
| CKPT | Checkpoint | 更新數據文件頭/控制文件檢查點 SCN | 加速實例恢復、觸發 DBWn 寫入 |
| SMON | System Monitor | 實例恢復、臨時段清理、合併連續空閒區 | 啟動時單次恢復、定期喚醒維護 |
| PMON | Process Monitor | 清理失敗進程資源、釋放鎖、重註冊服務 | 守護進程、秒級輪詢 |
| ARCn | Archiver | 歸檔填滿的線上日誌組 | 歸檔模式必備、多進程並行歸檔 |
| RECO | Recoverer | 解決分布式事務掛起 (雙階段提交失敗) | 定期喚醒嘗試提交/回滾 |
| LCKn | Lock (RAC) | 實例間全局鎖管理 | RAC 環境必備、多進程 |
| Dnnn | Dispatcher | 共享服務器連接多路複用 | MTS 架構核心 |
| Snnn | Shared Server | 共享服務器進程 | MTS 架構核心 |
WORKAREA_SIZE_POLICY = AUTO + PGA_AGGREGATE_TARGET 自動管理 (9i+);PGA_AGGREGATE_LIMIT 防止失控。-- 進程狀態
SELECT * FROM V$PROCESS;
SELECT * FROM V$SESSION WHERE PADDR = (SELECT ADDR FROM V$PROCESS WHERE SPID = &os_pid);
-- 背景進程
SELECT NAME, DESCRIPTION FROM V$BGPROCESS WHERE PADDR != '00';
-- 內存分配
SELECT * FROM V$SGA;
SELECT * FROM V$SGASTAT WHERE POOL = 'shared pool' ORDER BY BYTES DESC;
SELECT * FROM V$PGASTAT;
掌握進程/內存架構全景,是從「SQL 調優」進階到「實例級性能工程」、「故障根因分析」、「容量規劃」的必經之路。