首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 資料庫前瞻性維護:善用 AWR 自動工作負載儲存庫

     編輯:Oracle 資料庫基礎

資料庫維護分為「反應式」(事後補救)與「前瞻式」(事前預防)。Oracle 10g 引入 自動工作負載儲存庫 (AWR, Automatic Workload Repository),透過背景程序自動蒐集效能統計,協助 DPA 在故障爆發前發現徵兆並介入。

AWR 核心架構

  • MMON (Memory Monitor):主要收集器,預設每小時啟動一次,從動態效能視圖、資料字典、優化器蒐集統計,寫入 AWR 表(屬於 SYSMAN,存放於 SYSAUX 表空間)。
  • MMNL (Memory Monitor Light):輔助收集高頻指標(如 Active Session History, ASH)。

啟用與層級設定:STATISTICS_LEVEL 參數

建議:生產環境至少設為 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) 置於高效能儲存裝置,減少快照寫入對前端業務的干擾。

持續追蹤機制

  1. 啟用 AWR 並設定適當層級/間隔/保留。
  2. 定期 (每日/每週) 執行 @?/rdbms/admin/awrrpt.sql 產生報表,建立效能基準線。
  3. 設定閾值告警(如 DBMS_SERVER_ALERT)針對關鍵指標 (DB Time, Log File Sync, Parse Time 等) 主動通知。
  4. 異常發生時,對比基準線快速定位根因,實現「故障前介入」。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
層級收集範圍適用場景
BASIC僅核心統計,停用大多數顧問與主動監控測試/開發環境、資源極度受限
TYPICAL (預設)資料庫內部完整統計(含 SQL 執行計畫、等待事件等)大多數生產環境
ALLTYPICAL + 作業系統層級統計(CPU 排程、I/O 排程等)同機部署多應用、需關聯 OS 層面瓶頸