【pg数据库状态监控相关参数展示】

news2024/12/23 22:25:51

1、最近项目中做了一个postgresql数据库监控状态功能的需求,需求如下图
在这里插入图片描述

2、研究好久,终于在pg数据库的官方文档中找到了相关视图参数,
文档连接如下:
数据库基础信息:
http://www.postgres.cn/docs/9.3/functions-info.html
在这里插入图片描述

数据库相关状态视图:
http://www.postgres.cn/docs/9.6/monitoring-stats.html#PG-STAT-DATABASE-VIEW
在这里插入图片描述

3、相关参数的sql如下:
3.1 查询数据库基本信息的sql:

select 
current_database() as "数据库名",
current_schema() as "当前模式名",
current_user as "当前用户名",
inet_client_addr() as "远程的客户端连接地址",
inet_client_port() as "远程的客户端连接端口",
inet_server_addr() as "本地的服务端连接地址",
inet_server_port() as "本地的服务端连接端口",
pg_conf_load_time() as "配置载入时间",
pg_postmaster_start_time() as "服务器启动时间",
version() as "版本信息";

3.2 查询所有索引占用磁盘空间大小的sql:

#这里的size单位是字节
SELECT  pg_relation_size(relid) as indexSize, * FROM pg_stat_user_indexes WHERE schemaname = 'public'

3.3 查询数据库占用占用磁盘空间大小的sql:

#这里单位是M,保留两位小数
SELECT ROUND( ( pg_catalog.pg_database_size ( '数据库名' ) / 1048576 :: NUMERIC ), 2 )

3.4 查询数据库用户连接数sql:

 SELECT COUNT ( * ) FROM ( SELECT usename, COUNT ( * ) FROM pg_stat_activity WHERE where datname = '数据库名称' GROUP BY usename ) T

3.5 查询数据库后台连接数sql:

select numbackends from pg_stat_database where datname = '数据库名称'

3.6 查询数据库中被读取的磁盘块的数量和磁盘块被发现已经在缓冲区中的次数的sql

select blks_read,blks_hit from pg_stat_database where datname = '数据库名称'

3.7 查询数据库死锁数量sql

select deadlocks from pg_stat_database where datname = '数据库名称'

3.8 查询数据库等待线程数量sql:

select count(*) from pg_stat_activity where datname = '数据库名称' and waiting = 't'

4、综合8个参数查询sql如下

SELECT
	datid AS "数据库id",
	datname AS "数据库名称",
	numbackends AS "数据库后台连接数量",
	( SELECT COUNT ( * ) FROM ( SELECT usename, COUNT ( * ) FROM pg_stat_activity WHERE datname = '数据库名称' GROUP BY usename ) T ) AS "数据库后台连接数量",
	blks_read AS "数据库中被读取的磁盘块的数量",
	blks_hit AS "磁盘块被发现已经在缓冲区中的次数",
	deadlocks AS "数据库中被检测到的死锁数",
	( SELECT COUNT ( * ) FROM pg_stat_activity WHERE datname = '数据库名称' AND waiting = 't' ) AS "数据库中等待线程数量",
	( SELECT ROUND( ( pg_catalog.pg_database_size ( '数据库名称' ) / 1048576 :: NUMERIC ), 2 ) ) AS "数据库占用磁盘大小,单位M,保留两位小数",
	(
	SELECT
		ROUND( ( SUM ( i.pg_relation_size ) / 1048576 :: NUMERIC ), 2 ) 
	FROM
		( SELECT indexrelname, pg_relation_size ( relid ) FROM pg_stat_user_indexes WHERE schemaname = 'public' ) i 
	) AS "索引占用磁盘大小,单位M,保留两位小数" 
FROM
	pg_stat_database 
WHERE
	datname = '数据库名称'

执行结果如下:
在这里插入图片描述

5、成果展示,如下图:
在这里插入图片描述

6、每日一语:但行好事,莫问前程

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

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

相关文章

开源项目:数据库表结构生成文档工具

目录 一、软件介绍 二、技术框架 三、功能介绍 四、代码展示 1、获取数据库信息部分代码 2、导出Html文档代码 五、运行效果 六、项目开源地址 一、软件介绍 今天给大家分享我自己编写的数据库表结构文档生成工具,方便大家在实际开发当中,可以很方便导出…

JAVA常用工具-文件操作相关IO

IO技术在JDK中算是极其复杂的模块,文件管理都依赖IO技术,而且都是编程的难点,想要整体理解IO流,先从Linux操作系统开始, Linux空间隔离 Linux使用是区分用户的,这个是基础常识,其底层也区分用…

【MQTT协议】使用Mosquitto实现mqtt协议(二):编写视频帧的发布/订阅服务

目录一、Mosquitto中的QoS定义QoS1和3区别二、安装base64库三、cjson简介四、主程序代码五、调用Mosquitto库使用的cmakelist更多内容详见 【MQTT协议】使用c实现mqtt协议(Mosquitto源码编译)一、Mosquitto中的QoS定义 MQTT协议中的QoS(Qual…

CLIP论文拜读及理解

文章目录一、clip论文阅读二、prompt1.除prompt之外的预训练语言模型2.prompt2.1. prompt定义2.2. prompt类型2.3. prompt重构2.3.1 prompt template2.3.2 Answer engineering2.4 多个 prompt的使用2.5 prompt的训练总结参考(博文、论文)一、clip论文阅读…

Windows系统安装WSL,并安装docker服务

背景 因为工作需要,要在电脑上执行sh脚本,并启动docker服务执行具体逻辑。因为我的电脑是windows系统,对做本任务来说,比较吃力,所以想到使用wsl,让windows电脑具有linux电脑的能力。 什么是 WSL 2 WSL 2 …

JVM的类加载的过程以及双亲委派模型

目录 1、加载 (加载字节码文件,生成.class对象) 2、验证(验证Class文件是否符合规范) 3、准备 (为静态变量分配内存并设置变量初始值) 4、解析(初始化常量池中的一些常量&#…

索引的分类

1.唯一索引 给表中某一列设置为了唯一约束(这列不允许出现重复数据)后,数据库会为将这一列设置索引,这个索引叫做唯一索引(主键那一列是一个特殊的唯一索引,不仅要满足唯一索引这一列不可以出现重复数据,而且这一列还…

Android opencv

install cmake cpp folder,新建c项目 获取 OpenCV4Android SDK O4A_SDK 下载,并解压 ~/Downloads/OpenCV-android-sdk$ tree -d -L 2 . ├── apk ├── samples │ ├── 15-puzzle │ ├── camera-calibration │ ├── color-blob-detection │ ├…

文件:IO流

1. 什么是IO /O 即输入Input/ 输出Output的缩写,其实就是计算机调度把各个存储中(包括内存和外部存储)的数据写入写出的过程;java中用“流(stream)”来抽象表示这么一个写入写出的功能,封装成一…

Vue学习笔记(7. axios异步请求)

1. axios请求方式 方式1:axios({method:"GET",url:"..."}) 方式2:axios({method:"POST",url:"...",data:"..."}) 方式3:axios.get("url...") 方式4:axios.post(…

Python中的35个关键字

✅作者简介:CSDN内容合伙人、阿里云专家博主、51CTO专家博主、新星计划第三季python赛道Top1🏆 📃个人主页:hacker707的csdn博客 🔥系列专栏:零基础入门篇 💬个人格言:不断的翻越一座…

【 Spring MVC 核心功能(二) - 获取参数(下)】

文章目录一、使用 RequestBody 接收JSON对象二、使用 RequestPart 上传⽂件三、获取 Cookie四、获取 Header五、存储和获取 Session5.1 存储 Session5.2 获取 Session一、使用 RequestBody 接收JSON对象 有时客户端会通过 post 方式发送 json 格式的请求,那后端就可…

2.3.5双链表

单链表vs双链表 就是既有前驱指针也有后继指针,由line改为double。 双链表的插入怎么实现? s->nextp->next; p->next->priors s->priorp //把p赋给s的前驱指针指向的位置 p->nexts; 如果p刚好是最后一个元素。 p->next->prio…

基于ArcGIS的电子地图矢量化方法

一、电子地图及纸质地图矢量化的目的 地图数据来源有很多,其中栅格数据数字化是地图数据的重要来源。栅格数据的矢量化包括地理配准以及矢量化。矢量化后的地图数据往往可以为我们的空间统计分析提供实验依据,从而探究地理分布的时空差异性。 空间参考&a…

完整指南:如何安装Man手册

Man手册简介 man手册是Unix和类Unix操作系统中的命令行工具,用于提供关于特定命令、函数和文件的帮助文档。它通常包含命令的语法、选项、参数、示例以及其他相关信息。man手册可以通过在终端输入"man"命令,后跟要查看的命令或函数名称来访问…

huggingface transformer模型介绍

总结: 模型提高性能:新的目标函数,mask策略等一系列tricks Transformer 模型系列 自从2017,原始Transformer模型激励了大量新的模型,不止NLP任务,还包括预测蛋白质结构,时间序列预测。 有些模…

灌区流量监测设备-中小灌区节水改造

系统概述 灌区信息化管理系统主要对对灌区的水情、雨情、土壤墒情、气象等信息进行监测,对重点区域进行视频监控,同时对泵站、闸门进行远程控制,实现了信息的测量、统计、分析、控制、调度等功能。为灌区管理部门科学决策提供了依据&#xf…

Python 无监督学习实用指南:6~10

原文:Hands-on unsupervised learning with Python 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【ApacheCN 深度学习 译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。 不要担心自己的形象,只关…

23年5月高项学习笔记12 —— 干系人管理

过程: 1. 识别干系人:定期识别干系人,分析和记录他们的利益,参与度、相互依赖性、影响力和对项目的潜在的影响 输入:立项管理文件、沟通管理计划、干系人参与计划、需求文件、变更日志、问题日志、协议(协…

今天给大家介绍一篇基于springboot的医院管理系统的设计与实现

临近学期结束,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问题,今天给大家介绍一篇基…