# 如何生成AWR報告
## 什么是AWR報告
AWR(Automatic Workload Repository)是Oracle數據庫內置的性能診斷工具,通過定期采集數據庫性能快照(Snapshot),形成歷史數據倉庫。AWR報告基于兩個快照之間的性能數據對比,幫助DBA分析數據庫的負載特征、資源瓶頸和SQL性能問題。
## 生成AWR報告的前提條件
1. **Oracle診斷包許可**:AWR功能需要Oracle Diagnostic Pack許可
2. **足夠的SYSDBA權限**:執行用戶需具有SYSDBA或具有ADVISOR權限的賬戶
3. **快照已生成**:確認`dba_hist_snapshot`視圖中有可用快照
## 生成AWR報告的三種方法
### 方法一:使用SQL*Plus命令行
```sql
-- 連接到Oracle數據庫
sqlplus / as sysdba
-- 執行AWR報告生成腳本
@?/rdbms/admin/awrrpt.sql
執行后會交互式提示: 1. 選擇報告格式(HTML或TEXT) 2. 輸入快照天數范圍 3. 選擇具體的開始和結束快照ID
-- 生成HTML格式報告
SELECT * FROM TABLE(
DBMS_WORKLOAD_REPOSITORY.awr_report_html(
l_dbid => (SELECT dbid FROM v$database),
l_inst_num => (SELECT instance_number FROM v$instance),
l_bid => 開始快照ID,
l_eid => 結束快照ID
)
);
參數 | 說明 |
---|---|
DB Name | 數據庫名稱 |
Instance Name | 實例名稱 |
Startup Time | 實例啟動時間 |
Snap Id | 快照ID范圍 |
Elapsed Time | 快照間隔時間(分鐘) |
DB Time | 數據庫處理時間(分鐘) |
db file sequential read
, log file sync
等
EXEC DBMS_WORKLOAD_REPOSITORY.modify_snapshot_settings(
retention => 43200, -- 分鐘(30天)
interval => 60 -- 分鐘(快照間隔)
);
解決方案:
- 確認ORACLE_HOME
環境變量正確
- 檢查路徑$ORACLE_HOME/rdbms/admin/
下是否存在該文件
調整快照收集頻率:
BEGIN
DBMS_WORKLOAD_REPOSITORY.modify_snapshot_settings(
interval => 30, -- 每30分鐘收集一次
retention => 20160 -- 保留14天(20160分鐘)
);
END;
檢查項:
1. STATISTICS_LEVEL
參數是否為TYPICAL或ALL
SHOW PARAMETER statistics_level
SELECT * FROM dba_hist_snapshot ORDER BY snap_id DESC;
@?/rdbms/admin/awrddrpt.sql
@?/rdbms/admin/awrgrpt.sql
@?/rdbms/admin/ashrpt.sql
AWR報告是Oracle性能調優的重要工具,通過本文介紹的三種生成方法和分析要點,DBA可以快速定位數據庫性能瓶頸。建議結合ADDM報告和ASH報告進行綜合分析,以獲得更全面的性能診斷視角。 “`
注:本文約1000字,包含AWR報告的生成方法、關鍵內容解析和實用技巧,采用Markdown格式便于技術文檔的傳播和使用。實際使用時可根據具體Oracle版本調整腳本路徑。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。