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>