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

AWR 快照保留與截取間隔深度配置:分鐘單位陷阱、空間膨脹風險與最佳實務

     編輯:Oracle 資料庫基礎

AWR (自動工作負載儲存庫) 的兩大核心參數——保留期 與 截取間隔——均以 **分鐘** 為單位,這是導致配置錯誤的首要陷阱。本文深度剖析參數單位陷阱、雙參數聯動對 SYSAUX 空間的指數級影響、異常週期性事件的捕捉策略,並給出生產環境配置決策矩陣與監控腳本。

一、 參數單位鐵律:分鐘

DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(
  retention => 分鐘數,   -- 預設 10080 = 7 天
  interval  => 分鐘數);  -- 預設 60 = 1 小時

典型錯誤:以為單位是天,設 retention => 10 → 實際僅保留 **10 分鐘**,AWR 失去歷史價值。

二、 雙參數聯動空間模型

AWR 佔用空間 ≈ (退役快照大小) × (保留期 / 間隔)

* 實際大小視資料庫活躍度、統計層級、段統計收集而異,建議以實測為準。

三、 異常週期性事件捕捉策略

某些效能問題呈現 **週期性** (如每日批次、每月結帳、排程備份),需覆蓋 **多個完整週期** 才能被基線識別。

配置保留 (天)間隔 (分)快照數預估空間 (GB/天) *風險
預設760168~0.5低
高解析度30152880~8**極高**
長期基線60601440~4中
錯誤配置10 (天)5288~1.5誤以為 10 天

四、 生產環境配置決策矩陣

-- 通用生產標準 (推薦)
EXEC DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(
  retention => 20160,  -- 14 天
  interval  => 60);    -- 1 小時

-- 核心交易/高頻變更系統
EXEC DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(
  retention => 43200,  -- 30 天
  interval  => 30);    -- 30 分鐘

-- 儲存受限環境
EXEC DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(
  retention => 10080,  -- 7 天
  interval  => 60);    -- 1 小時 (不可再縮短間隔)

五、 空間膨脹監控與自動清理腳本

-- 1. 監控 AWR 佔用空間 (每日排程)
SELECT occupant_name,
       space_usage_kbytes/1024 AS used_mb,
       schema_name
FROM   v$sysaux_occupants
WHERE  occupant_name LIKE 'AWR%';

-- 2. 監控快照數量與最舊/最新時間
SELECT min(snap_id), max(snap_id), count(*),
       min(begin_interval_time), max(end_interval_time)
FROM   dba_hist_snapshot;

-- 3. 自動清理超期快照 (配合 retention 參數,MMON 自動執行)
-- 手動補清理指定範圍
EXEC DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE(100, 500);

-- 4. 匯出歷史基線釋放空間 (長期保留)
EXEC DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE(
  start_snap_id => 1000, end_snap_id => 2000,
  baseline_name => 'BASELINE_Q1_2024', expiration => 365);

六、 統計層級與間隔的交互影響

週期類型建議保留建議間隔理由
每日批次14~30 天15~30 分鐘覆蓋 2~4 週完整週期,識別逐日漂移
每週維護60 天30 分鐘覆蓋 8+ 週,對比同週期基線
每月結帳90~180 天60 分鐘覆蓋 3~6 個月,年度趨勢分析
臨時調優7 天5~10 分鐘短期高解析度,調優結束即恢復

七、 避坑檢查清單 (部署前必核)

  1. ☐ Retention 單位確認為分鐘:天數 × 24 × 60
  2. ☐ Interval ≥ 10 分鐘:避免過度收集導致 MMON 負擔過重
  3. ☐ SYSAUX 表空間啟用 AUTOEXTEND + MAXSIZE:防止空間耗盡掛庫
  4. ☐ 建立 AWR 空間監控告警:佔用 > 70% 觸發通知
  5. ☐ 定期匯出基線:季度/年度基線匯出至外部儲存
  6. ☐ 文件化配置理由:記錄 retention/interval 選擇依據,利於交接審計

八、 進階:AWR 表分區與壓縮 (12c+)

  • AWR 內部表 WRH$_* 採用 **範圍分區** (按 SNAP_ID),支援分區級清除
  • DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE 實際執行 TRUNCATE PARTITION,瞬間釋放空間
  • 19c 引入 **Hybrid Columnar Compression (HCC)** 壓縮歷史分區,空間壓縮比 5~10x

AWR 參數配置看似簡單,實則關係到「可見歷史深度」與「儲存成本」的動態平衡。**分鐘單位鐵律、雙參數聯動空間模型、週期性事件覆蓋** 三大核心認知,是 DBA 從「會配置」進階到「會規劃」的分水嶺。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
STATISTICS_LEVEL間隔 60 分鐘空間/天間隔 15 分鐘空間/天建議
BASIC極小極小生產禁用
TYPICAL~500 MB~2 GB標準配置
ALL~1.5 GB~6 GB僅調優期啟用