pg_pdr的生成方式

文章目录

文档用途

该文档主要介绍pg_pdr以及生成方式。

详细信息

1.pg_pdr介绍

瀚高数据库企业版V5提供了类似Oracle数据库AWR报告的性能诊断报告(Performance Diagnosis Report),以下简称 PDR。

2.pg_pdr的配置

配置数据库参数文件:

shared_preload_libraries = 'worker_pg_pdr,pg_stat_statements,pg_wait_sampling'

PDR 的正常使用需要加载这三个库文件

pg_pdr.naptime = 60

PDR 快照的产生间隔,单位为分钟,默认为 60 分钟产生一次快照。Naptime=0 时,代表不启用 PDR 功能。

pg_pdr.naplife = 7

PDR 快照的保存时间,单位为天,默认保存最近 7 天的快照。超过 naplife 的快照,会自动删除。

pg_pdr.napdb = 'highgo'

用于保存 PDR 快照数据表的数据库,默认设置为 highgo 数据库。

注意事项:

PDR 的相关参数发生修改,需要重启数据库才生效。

PDR快照数据表保存的数据库如果为新创建的库,需要dba手动连接一次新创建的库。

3.pg_pdr的使用

初次安装和使用 PDR 功能时,采集的第一个快照id是0。

用户可以用于生成性能分析报告的快照 id是从1开始的。每拍一次快照,id加1。

生成快照的时机有两种:

一是计划时间到期(默认 1 小时),自动拍摄快照。

二是用户使用 pg_pdr_new_snap()函数手工拍快照。

自动快照:

在数据库启动1分钟后自动产生一次快照,然后根据配置文件中的 pg_pdr.naptime 自动产生后续快照,无需操作。

手动快照:

在psql中输入 select pg_pdr_new_snap()即可产生一次快照。

psql 返回 t,表示生成快照成功。

psql 返回 f,表示生成快照失败。

4.生成性能分析报告

使用 pdr_report 命令,可以生成 PDR 报告。

PDR生成的快照存储在napdb配置的数据库中,快照包含整个数据集簇中所有数据库的性能信息。

生成 PDR 报告时,需要选择集簇中的一个数据库作为报告目标数据库名,只生成一个数据库的报告。

按照提示,依次输入数据库用户名,数据库用户密码,快照存储数据库名,报告目标数据库名,开始快照 id,结束快照 id,报告文件名。

完成以上输入,即可生成报告。

性能分析报告为 html 网页格式,可在浏览器中打开和使用。

注意:

1.PDR保存快照的数据表为_pg_pdr_.pdrdb , pg_pdr .pdrtable , pg_pdr .pdrsql , pg_pdr.pdrwait。

这四个数据表不可修改表结构,不可修改删除数据,否则将导致无法生成性能分析报告或者生成的性能分析报告不准确。

如果因意外情况导致这四个数据表的数据被修改,无法生成准确的性能分析报告,

可删除这四张数据表并重启数据库,由快照id=0开始生新生成快照。

2.快照与结束快照期间发生过数据库重启,将无法生成性能分析报告。

dr_report 命令时,会分屏列出当前快照存储数据库和报告目标数据库拥有的所有快

照 id,此时可使用 Enter 键显示下一行快照 id,可使用空格键显示下一屏快照 id,

可使用q键停止显示剩余的快照 id。

相关推荐
几何心凉2 分钟前
从全密态到AI运维:openGauss构建企业级数据安全与效率的双重屏障
开发语言·数据库
李景琰1 小时前
多级缓存架构与一致性核心挑战:基于Caffeine本地缓存、Redis分布式缓存与MySQL数据库的多级缓存数据一致性方案
数据库·缓存·架构
盼哥PyAI实验室2 小时前
MySQL 数据库基础:字段判空、逻辑查找、排序、限制、模糊搜索与聚合函数全解析
数据库·mysql·oracle
v***91305 小时前
【MySQL】JDBC的连接
数据库·mysql
j***51895 小时前
Redis 安装及配置教程(Windows)【安装】
数据库·windows·redis
A***F1578 小时前
Redis开启远程访问
数据库·redis·缓存
v***44678 小时前
【MySQL — 数据库基础】深入理解数据库服务与数据库关系、MySQL连接创建、客户端工具及架构解析
数据库·mysql·架构
v***59838 小时前
Django视图与URLs路由详解
数据库·django·sqlite
i***48618 小时前
MySQL中的GROUP_CONCAT()函数详解与实战应用
数据库·mysql
K***43068 小时前
MySQL中的TRUNCATE TABLE命令
数据库·mysql