在 Reader 个实例上每小时隔离 pg_stat_statements

Hourly Segregate pg_stat_statements On Reader Instance

极光 Postgres 11.8 我必须每小时在 Reader 个实例上隔离 pg_stat_statements。 在 Writer 实例上很简单,每小时创建一个 table 和备份 pg_stat_statements,然后使用 pg_stat_statements_reset().

清理 pg_stat_statements

由于我无法在 Reader 上创建 table 所以需要专家的评论,一个想法是在 Writer 上创建 FDW table 并按小时复制数据但是如何将 pg_stat_statements_reset() 与 Reader 上的同步?有两个单独的 cronjobs 用于复制和 pg_stat_statements_reset().

看起来不是一个可靠的解决方案

作为 Oracle 的背景,我很期待每小时的 ADDM 报告。 pg_stat_statements 被发现是 ADDM 的一个比较令人满意的替代品。 我想按小时划分 pg_stat_statements 以获得更深入的分析,因为所有忙碌和非工作时间的单一摘要意义不大。

谢谢

有很多可能的解决方案,请根据简单性和适合您设置的程度选择一个。

我的想法是完全不是到运行pg_stat_statements_reset(),而是计算数据的后续快照之间的差异。这样就省去了同步两个活动的麻烦。

对于快照,我的想法是在备用目录上创建一个(可能是挂载 NFS 的)目录,您可以在该目录中写入 COPY 的每小时快照,由 cron 作业安排。