Oracle 10g 提供多項進階 SGA 管理參數,正確設定可突破 32-bit 記憶體限制、預先載入 SGA 至實體記憶體、鎖定 SGA 避免分頁、啟用自動記憶體管理。本文詳細說明四大關鍵參數用途、適用場景、設定方法與副作用。
USE_INDIRECT_DATA_BUFFERS=TRUE (靜態參數,需重啟)。/PAE 啟動參數,Linux 需 PAE 核心。FALSE (僅配置虛擬記憶體,Touch 時才分頁入實體)。FALSE。mlock() / lock_pages_in_memory 權限 (Windows 需本地安全性原則授予 "Lock pages in memory" 給 Oracle 服務帳號)。SGA_TARGET ≤ SGA_MAX_SIZE。若 SGA_MAX_SIZE 未設或較小,自動提升至 SGA_TARGET。LOG_BUFFER、DB_KEEP_CACHE_SIZE、DB_RECYCLE_CACHE_SIZE、DB_nK_CACHE_SIZE 仍需手動設定。STATISTICS_LEVEL=TYPICAL/ALL。ALTER SYSTEM SET SGA_TARGET=3G SCOPE=BOTH; 即時生效,無需重啟。| 參數 | 類型 | 預設值 | 動態修改 | 典型建議值 |
|---|---|---|---|---|
| USE_INDIRECT_DATA_BUFFERS | Static | FALSE | 否 | 32-bit 大記憶體伺服器 TRUE |
| PRE_PAGE_SGA | Static | FALSE | 否 | 核心低延遲系統 TRUE |
| LOCK_SGA | Static | FALSE | 否 | 記憶體充裕確定性系統 TRUE |
| SGA_TARGET | Dynamic | 0 | 是 | 總 SGA 目標值 (如 2G, 4G) |
SGA_TARGET、SGA_MAX_SIZE,其餘保持預設。USE_INDIRECT_DATA_BUFFERS=TRUE + SGA_TARGET + PRE_PAGE_SGA=TRUE (視啟動時間容忍度)。LOCK_SGA=TRUE + PRE_PAGE_SGA=TRUE + SGA_TARGET,確保零分頁延遲。參數調優無銀彈,需依據硬體架構、OS 能力、業務 SLA 三維度決策,並在測試環境完整壓測驗證後上線。