| 週期類型 | 建議保留 | 建議間隔 | 理由 |
| 每日批次 | 14~30 天 | 15~30 分鐘 | 覆蓋 2~4 週完整週期,識別逐日漂移 |
| 每週維護 | 60 天 | 30 分鐘 | 覆蓋 8+ 週,對比同週期基線 |
| 每月結帳 | 90~180 天 | 60 分鐘 | 覆蓋 3~6 個月,年度趨勢分析 |
| 臨時調優 | 7 天 | 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);
六、 統計層級與間隔的交互影響
| STATISTICS_LEVEL | 間隔 60 分鐘空間/天 | 間隔 15 分鐘空間/天 | 建議 |
| BASIC | 極小 | 極小 | 生產禁用 |
| TYPICAL | ~500 MB | ~2 GB | 標準配置 |
| ALL | ~1.5 GB | ~6 GB | 僅調優期啟用 |
七、 避坑檢查清單 (部署前必核)
- ☐ Retention 單位確認為分鐘:
天數 × 24 × 60
- ☐ Interval ≥ 10 分鐘:避免過度收集導致 MMON 負擔過重
- ☐ SYSAUX 表空間啟用 AUTOEXTEND + MAXSIZE:防止空間耗盡掛庫
- ☐ 建立 AWR 空間監控告警:佔用 > 70% 觸發通知
- ☐ 定期匯出基線:季度/年度基線匯出至外部儲存
- ☐ 文件化配置理由:記錄 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 從「會配置」進階到「會規劃」的分水嶺。
- 上一篇文章: Oracle 資料庫前瞻性維護:自動工作負載儲存庫 (AWR) 啟用、配置與實戰策略
- 下一篇文章: Oracle 專家實戰筆記:Bitmap 索引鎖定災難與 Function-based 索引破解之道
Copyright ©
程式碼之家 All Rights Reserved