POSTGRESQL PG_GATHER 如何单纯用SQL 就可以产生一个有意思的PG 的分析报告

news2024/12/28 5:21:34

163b398cb8538a73710af7b60302686e.png

开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,在新加的朋友会分到2群(共860人左右 1 + 2 + 3)新人会进入3群

从ORACLE TO POSTGRESQL 有一个对于ORACLE DBA 不好的体验,就是失去了AWR ,AWR 对于ORACLE DBA 可以说是一个武士手里的重剑。转移到了POSTGRESQL 后,问题就来了,ORACLE DBA 就piss me off.  咋办,方法很多,今天就通过 pg_gather 来使用看看能不能解决部分的问题。

这个项目主要有两个仅使用 SQL 脚本的用户脚本。其中一个(gather.sql)用于从 PostgreSQL 数据库中收集性能和配置数据。另一个 SQL 脚本(gather_report.sql)用于分析和生成详细的 HTML 报告。是的,完全仅使用 SQL!利用 PostgreSQL 命令行实用程序 psql 的内置功能。

那么这个工具相对于其他的工具的优点有那些

开放安全:简单、透明、完全可审计的代码。仅使用SQL数据收集脚本确保完全透明,了解收集、传输和分析的所有内容。避免使用任何控制结构的程序,以提高数据收集的可读性和可审计性。这是将数据收集和分析分开的一个原因。

没有可执行文件:在数据库主机上不需要部署可执行文件。

在安全环境中使用可执行文件存在风险。在许多高度安全的环境中可能无法接受。pg_gather仅需要标准的PostgreSQL命令行实用程序psql。不需要其他库或可执行文件。

认证不可知:任何由PostgreSQL支持的身份验证机制都适用于pg_gather的数据收集,因为它使用标准的psql。

任何操作系统:Linux 32 / 64位、SunSolaris、Apple macOS、Microsoft Windows。它适用于psql可用的任何地方。这确保了最大的可移植性。(Windows用户请参阅下面的注释部分)

架构不可知:x86-64位、ARM、Sparc、Power等。它在psql可用的任何地方都可以工作。

可审计的、可选的数据遮蔽:

pg_gather以制表符分隔值(TSV)格式的文本文件收集数据。这使得在移交或传输数据进行分析之前审查和审计信息成为可能。还可以通过简单的步骤实现进一步的遮蔽或修剪。

任何云/容器/k8s:适用于AWS RDS、Google Cloud SQL、On-Prim等。

(请参见注释部分中的Heroku、AWS Aurora、Docker和K8s特定注释)

零错误设计:

即使数据收集是部分的或由于权限问题、表/视图不可用或其他任何原因造成了故障,它仍可以成功生成具有可用信息的报告。

低开销的数据收集:

数据收集本身就是通过设计与数据分析分开的。收集的数据可以在独立的系统上进行分析,以便分析查询的执行不会对关键系统造成不利影响。数据收集的开销在大多数情况下可以忽略不计。

小型的单文件数据转储:

尽可能避免收集数据中的冗余,以生成可能最小的文件,可以通过gzip进一步压缩为几个KB或MB,以便于传输和存储。

在分析完数据库后,给出HTML 格式的报告

24fc4cb5dd161de6379dc9ed653d8c99.png

692b5ca25c8aeb5aacb03754ef29f26f.png

13ae4eb68ab659761e5a51f275494a07.png

d8df2356ade31e45acfb3dd34ccdebf4.png

494700747b1ad13404a8bc14f49c81d5.png

88e40bb471255f38833cc3c9f83800d1.png

这些图为产生的PG的分析报告,而这样的报告产生根本没有用到复杂的命令,而仅仅是运行了一些SQL 通过简单的命令来将PG 的信息进行获取。

而对我来说,更重要的部分是,这个东西对于云数据库是完全可以使用的,并不会因为是云的原因而让程序无法进行数据的收集。

整体的过程分为

1 数据的收集

通过PSQL 运行pg_gather 中中的SQL 将数据导出

d08ea7e32a914c0b2a90bca062a6d053.png

此脚本执行可能需要20秒以上,因为其中包含了休眠/延迟时间。我们建议以特权用户(超级用户、rds_superuser等)或具有pg_monitor特权的某个帐户运行脚本。此输出文件包含性能和配置数据,供分析使用。

同时数据的收集也可以进行定时的收集,保证对于数据库不同时段的数据的收集产生对应不同时间段的报告,如果是定时的收集,官方建议对于数据库进行限定为 template1 

psql -U postgres -d template1 -X -f /path/to/gather.sql > out.txt

2  数据的分析

数据的分析,实际上就是在PG的数据库中创建表,将导出的文本进行一个数据的导入。psql -f gather_schema.sql -f out.txt

0eb1dde861b8b9a5035ccf54dbcee989.png

3  产生报告

产生报告很简单,就是通过gather_report SQL将数据输出为html 格式的文件,达到可以方便检查报告的目的。实际上这个部分

psql -X -f gather_report.sql > GatherReport.html

30a9ec3392e08f9a2fe6af2d7679d194.png

f67c334a0077e6d8431757c98df6db5a.png

实际上这个脚本是一非常好进行研究和后续扩展的部分,而且这个东西最大的有点是抛弃了与操作系统或数据库以外的部分进行信息收集的过程整体都是和我们的数据库进行数据的获取和信息的输出。

68146d8d2466de6aad2b918ca5025267.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/656378.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Android开发基础】Canvas画笔(以刮刮乐为例)

文章目录 一、引言二、设计1、获取图片资源2、获取屏幕信息3、Canvas涂层4、随机内容5、屏幕监听 三、附件1、UI设计2、总代码(1)控件初始化(2)图层初始化 3、源代码 一、引言 (本篇博客只说明Canvas画笔的使用&#…

STM32单片机(六)TIM定时器 -> 第六节:TIM输入捕获练习(输入捕获模式测频率和PWMI模式测频率占空比)

❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 :适用于想要…

docker inspect

docker inspect 命令用于获取有关 Docker 容器、镜像、网络等的详细信息。它提供了关于指定对象的元数据和配置的完整视图,包括运行状态、网络设置、卷挂载、环境变量等。 以下是一些常见的字段和属性,可以根据需要选择其中一些或全部列出: …

【算法与数据结构】202、LeetCode快乐数

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析:先用一个dowhile循环计算整数各个位数字的平方和,然后在unordered_set里面插入n&#xff0…

C语言学习笔记:函数

✨博文作者:烟雨孤舟 💖 喜欢的可以 点赞 收藏 关注哦~~ ✍️ 作者简介: 一个热爱大数据的学习者 ✍️ 笔记简介:作为大数据爱好者,以下是个人总结的学习笔记,如有错误,请多多指教! 目录 简介 …

关于OpenCV中minAreaRect角度记录

一、问题引出 最近看到stackflow关于minAreaRect的讨论: MinAreaRect angles - Unsure about the angle returnedOpenCV’s RotatedRect angle does not provide enough information 大概问题是minAreaRect这个接口返回的角度信息不足以反应返回的旋转矩形的旋转…

appium辅助自动化工具-- Appium studio

这里我要给大家介绍一款appium辅助自动化测试工具appium studio,你没看错,不是android studio,也不是appium android studio,就是appium studio! 下载地址: Appium Studio | Digital.ai Continuous Test…

架构-计算机体系结构

章节架构 分值约 3 分 #mermaid-svg-nV7dvQlYnuXaOVOf {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-nV7dvQlYnuXaOVOf .error-icon{fill:#552222;}#mermaid-svg-nV7dvQlYnuXaOVOf .error-text{fill:#552222;strok…

如何优雅的使用 React Context

在开始今天的文章之前,大家不妨先想一下触发 React 组件 re-render 的原因有哪些,或者说什么时候 React 组件会发生 re-render 。 先说结论: 状态变化父组件 re-renderContext 变化Hooks 变化 ❝ 这里有个误解:props 变化也会导致…

力扣日记2481

1. 题目 LeetCode 2481. 分割圆的最少切割次数 1.1 题意 可以使用直接或半径切分,管他叫一次切分,求切分圆为n等份的最少次数。 1.2 分析 可以想到,对圆做n等分,然后每个半径看出一次切分,这是最多次数,…

实验篇(7.2) 13. 站对站安全隧道 - 走对方宽带上网(FortiGate-IPsec) ❀ 远程访问

【简介】前面实验已经知道,FortiClient客户端拨号到远端防火墙,包括上网流量等所有流量都可以通过隧道到达远端防火墙,并从对方宽带上网。那么两台防火墙之间连接的安全隧道,可以实现这个功能吗? 实验要求与环境 OldMe…

uniapp中使用mixins(混入)使用

mixins 选项接收一个混入对象的数组。这些混入对象可以像正常的实例对象一样包含实例选项,这些选项将会被合并到最终的选项中,使用的是和 Vue.extend() 一样的选项合并逻辑。也就是说,如果你的混入包含一个 created 钩子,而创建组…

虚拟网络namespace到bridge

前言 容器的网络是一大难点,不管是docker 还是kubernetes 都绕不开计算机网络。以下的介绍主要以计算机网络的namespace 和bridge 两个方面来展开介绍,方便深入理解容器的网络原理。 1.namespace分析 linux 支持六种资源的namespace :mount ns 、UTS ns…

HTML日期选择器:简化日期输入与交互

Date Picker 控件 HTML提供了<input>元素的type="date"属性,用于创建日期选择器(Date Picker)控件。日期选择器允许用户从一个交互式日历中选择日期值。以下是关于HTML日期选择器的详细解释: 创建日期选择器: 使用<input>元素,并将其type属性设置…

java从零开始系统性学习完整超全资源+笔记(下)

java从零开始系统性学习完整超全资源笔记&#xff08;下&#xff09; java从零开始系统性学习完整超全资源笔记&#xff08;上&#xff09; 文章目录 java从零开始系统性学习完整超全资源笔记&#xff08;下&#xff09;第十七章 泛型与常见数据结构ArrayListCollection接口的…

linux + lnmp + tp6部署项目问题集

部署完毕后&#xff0c;访问域名&#xff0c;报错502 Gateway 1:查看防火墙&#xff0c;需要的端口是否被关闭了&#xff0c;需要开启 vi /etc/sysconfig/iptables 发现有端口没空&#xff0c;就先i,然后把该端口后面的DROP改成ACCEPT&#xff0c;然后esc :wq 再回车&#xf…

轻松搞定文件复制备份,教你用快速的时间将文件复制另一个文件夹里并自动编号。

通常情况下&#xff0c;我们会将文件复制到另一个文件夹中&#xff0c;这很容易实现。但是如果需要将大量文件复制到同一个文件夹中&#xff0c;并且需要给每个文件自动编号&#xff0c;这时就需要用到一些技巧了。下面是一个简单的办法&#xff0c; 首先&#xff0c;第一步我…

node笔记_读写excel

文章目录 ⭐前言⭐安装依赖⭐读取excel&#x1f496; 按行读取&#x1f496; 按列读取 ⭐写入excel⭐结束 ⭐前言 大家好&#xff0c;我是yma16&#xff0c;本文分享关于node读取excel内容 往期文章 node_windows环境变量配置 node_npm发布包 linux_配置node node_nvm安装配置…

微服务开发系列 第十一篇:XXL-JOB

总概 A、技术栈 开发语言&#xff1a;Java 1.8数据库&#xff1a;MySQL、Redis、MongoDB、Elasticsearch微服务框架&#xff1a;Spring Cloud Alibaba微服务网关&#xff1a;Spring Cloud Gateway服务注册和配置中心&#xff1a;Nacos分布式事务&#xff1a;Seata链路追踪框架…

【AIGC】baichuan-7B大模型

百川智能&#xff5c;开源可商用的大规模预训练语言模型baichuan-7B大模型 概述 baichuan-7B 是由百川智能开发的一个开源可商用的大规模预训练语言模型。基于 Transformer 结构&#xff0c;在大约1.2万亿 tokens 上训练的70亿参数模型&#xff0c;支持中英双语&#xff0c;上…