postgresql , awr , oracle , 資料庫診斷 , 性能報告 , snapshot , 快照
熟悉oracle的童鞋一定對awr不陌生,通常要分析一個資料庫在某個時間段的性能,可以從資料庫的動态視圖等統計資訊記錄中生成一份該時段的統計分析報告。
裡面包含了常見的等待事件分析,top sql, top event等。
postgresql是一個功能和oracle幾乎可以媲美的開源産品,分析報告的工具也非常多,例如pgstatsinfo, pgsnap, pgtop, pgfouine, ..... 非常的多。
我不想介紹這麼多的工具,而是自己根據對pg的經驗寫了一個非常簡單易用的,不需要安裝一堆的插件,周期性的打快照即可。 用法和awr非常類似。
本文主要是将之前寫的一個比較完整的巡檢腳本轉換成sql接口的awr,易用性更強,不需要登陸資料庫主機,即可獲得報告。
将來pg加入新的統計資訊表,我會繼續追加到這個簡單的工具中。
希望大家一起來使用和改進,有問題可以發給我。
1. 建立插件
2. 打快照(全局)
3. 打快照(庫級)
4. 檢視快照清單
5. 指定快照起始id,生成全局報告(text模式)
6. 指定快照起始id,生成庫級報告(text模式)
7. 指定快照起始id,生成全局報告(md模式)
8. 指定快照起始id,生成庫級報告(md模式)
9. 解讀報告(略, 報告内自帶推薦建議)
10. 清除曆史快照
10.1 删除指定snap_id以前的快照。
10.2 删除指定時間以前的快照。
10.3 保留最近的幾個快照,其他删除。
1. 快照清單
其實就是快照的清單,每打一個快照,就會新增一條記錄。
2. 快照曆史資料表
打快照時,會将系統的統計資訊記錄到這些曆史表,後面根據時間段生成診斷報告就用到這裡的資料。
3. 建立快照
顧名思義,就是建立快照,我這裡分為兩種快照,一種是全局的,一種是庫級的。
全局的在哪裡建立(首先建立extension pg_awr;)都可以,但是隻需要建立一次就夠了,而庫級的需要連接配接到需要分析庫去建立快照。
<code></code>