資料庫維護分為「反應式」(事後補救)與「前瞻式」(事前預防)。Oracle 10g 引入 自動工作負載儲存庫 (AWR, Automatic Workload Repository),透過背景程序自動蒐集效能統計,協助 DPA 在故障爆發前發現徵兆並介入。
AWR 核心架構
- MMON (Memory Monitor):主要收集器,預設每小時啟動一次,從動態效能視圖、資料字典、優化器蒐集統計,寫入 AWR 表(屬於
SYSMAN,存放於 SYSAUX 表空間)。
- MMNL (Memory Monitor Light):輔助收集高頻指標(如 Active Session History, ASH)。
啟用與層級設定:STATISTICS_LEVEL 參數
| 層級 | 收集範圍 | 適用場景 |
BASIC | 僅核心統計,停用大多數顧問與主動監控 | 測試/開發環境、資源極度受限 |
TYPICAL (預設) | 資料庫內部完整統計(含 SQL 執行計畫、等待事件等) | 大多數生產環境 |
ALL | TYPICAL + 作業系統層級統計(CPU 排程、I/O 排程等) | 同機部署多應用、需關聯 OS 層面瓶頸 |
建議:生產環境至少設為 TYPICAL;若同一伺服器跑多種服務,建議 ALL 以利跨層分析。
快照保留與間隔調整:DBMS_WORKLOAD_REPOSITORY
- 預設值:保留 7 天(10,080 分鐘),快照間隔 60 分鐘。
- 單位注意:參數皆以分鐘為單位!
修改範例:保留 10 天、每 30 分鐘快照一次
EXEC DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(
INTERVAL => 30, -- 30 分鐘
RETENTION => 14400 -- 10 天 = 60*24*10 = 14400 分鐘
);
調整策略與風險
- 縮短間隔(如 10 分鐘)可捕捉短暫尖峰,但增加系統負擔與 AWR 表增長速度。
- 延長保留期佔用更多
SYSAUX 空間,需監控表空間使用率。
- 折衷建議:縮短間隔配合定期匯出 AWR 報表備份(而非單純延長保留),避免
SYSAUX 爆滿。
- 快照間隔建議不低於 30 分鐘;若低於此值,通常代表 SQL 需優化而非監控頻率不足。
硬體輔助
將 AWR 相關表空間 (SYSAUX) 置於高效能儲存裝置,減少快照寫入對前端業務的干擾。
持續追蹤機制
- 啟用 AWR 並設定適當層級/間隔/保留。
- 定期 (每日/每週) 執行
@?/rdbms/admin/awrrpt.sql 產生報表,建立效能基準線。
- 設定閾值告警(如
DBMS_SERVER_ALERT)針對關鍵指標 (DB Time, Log File Sync, Parse Time 等) 主動通知。
- 異常發生時,對比基準線快速定位根因,實現「故障前介入」。
- 上一篇文章: Windows 7 玩 PES 2009 哨聲太小?Realtek 聲卡完美解決方案
- 下一篇文章: RMAN vs EXP/IMP 異機資料遷移實測:備份快 vs 匯入快的抉擇
Copyright ©
程式碼之家 All Rights Reserved