自動負載資訊庫AWR(Automatic Workload Repository)是資料庫收集和分析效能資料的工具。通過AWR工具,可以從資料庫的動態視圖等統計資訊中產生某個時間段的效能報告。
概述
PolarDB PostgreSQL版(相容Oracle)的Global AWR效能報告功能,在提供資料庫資源、Top SQL、Top表及索引的分析基礎上,進一步拓展了AWR報告的邊界:資料範圍上涵蓋PolarDB資料庫叢集所有RW/RO節點,具備全域視角;資料類型上涵蓋效能資料和事件資訊, 方便分析資料庫執行個體異常;資料粒度上關鍵計量採集細化到秒級,並通過Grafana提供趨勢展示,方便定位效能抖動根因。
架構與資料流
AWR架構說明
採集層:UE作為代理進程部署於物理機,負責採集PolarDB PostgreSQL版(相容Oracle)資料庫叢集的效能資料及事件資訊。
儲存層:UE完成採集後,您可以配置將採集到的資料回寫到對應的資料庫叢集中。
展示層:提供Grafana展示, 可將資料庫叢集配置為資料來源,匯入dashboard設定檔即可查看。
展示
支援通過Grafana查看PolarDB PostgreSQL版(相容Oracle)的效能趨勢及事件資訊。樣本如下:
對於效能問題, 提供核心的Average Active Sessions趨勢展示,配合資源消耗情況可分析資料庫瓶頸所在。同時結合事件資訊,能夠快速定位抖動原因。例如下圖在20:09:22,可以看到串連異常斷開。

對於記憶體佔用問題, 可細化到SQL及其Memory Context層級。

還有Top SQL和Top Table的各種分析。

具體的開啟和配置方式請參見使用說明。
使用說明
使用前準備
核心版本
PolarDB PostgreSQL版(相容Oracle)核心版本建議升級至20211231或以上的版本。
執行以下命令,查看當前核心版本:
show polar_release_date;顯示結果如下所示,表示當前使用的核心版本為20211231。
polar_release_date
--------------------
20211231
(1 row)許可權說明
目前所有Global AWR提供的控制許可權及資料許可權均為PUBLIC。
時區
PolarDB PostgreSQL版(相容Oracle)資料庫叢集預設的時區為UTC,在查看效能資料時要注意所在時區的時間差異。
啟用和禁用Global AWR資料的本機存放區功能
在使用AWR之前,需要啟用Global AWR資料的本機存放區功能。Global AWR功能啟用後,無需定期觸發快照也可產生細粒度的效能報告。可以在postgres庫的polar_gawr_collection模式下查看資料。
對於關鍵計量,PolarDB PostgreSQL版(相容Oracle)會進行細粒度採集及寫入,Global AWR功能啟用後會帶來兩部分額外開銷,請您謹慎評估是否需要啟用此功能:
效能開銷:整體效能損失在10%以內。
儲存開銷:目前預設保留3天的資料,3天最細粒度的資料量在10 GB以內。
操作說明
以下操作需要在postgres資料庫中完成。
啟用Global AWR資料的本機存放區功能。
SELECT polar_gawr_collection.enable_store_in_localdb();顯示結果如下:
enable_store_in_localdb ------------------------- (1 row)禁用Global AWR資料的本機存放區功能。
SELECT polar_gawr_collection.disable_store_in_localdb();顯示結果如下:
disable_store_in_localdb -------------------------- (1 row)查看Global AWR資料的本機存放區啟停狀態。
SELECT polar_gawr_collection.show_store_in_localdb();顯示結果如下:
show_store_in_localdb ----------------------- t (1 row)
配置Grafana查看AWR資訊
下載並安裝Grafana
詳情請參見Download Grafana,建議使用8.1.2或以上版本。
添加資料來源
根據實際情況將PolarDB PostgreSQL版(相容Oracle)資料庫叢集添加為PostgreSQL資料來源。
開啟Grafana,在左側導覽列中單擊Configuration > Data sources。
在開啟的Data sources頁面,單擊右側Add data source添加資料來源。

資料庫叢集的連結資訊如實填寫即可。
說明Database需要填寫postgres。
匯入Dashboard設定檔
在左側導覽列中單擊+ > Import。
在開啟的Import頁面,單擊Upload JSON file匯入設定檔。

dashboard設定檔壓縮包請參見PolarDB Global AWR-1712645731515.json。設定檔下載後解壓縮即可使用。