postgreSQL数据库的监控及数据维护操作

目前postgreSQL数据库的管理,数据查询等都需要安装postgreSQL软件或安装pgadmin等,远程访问都需要先登录到服务器等繁琐的操作。如果是开发团队,那么每个开发,测试,管理人员都要经历这个麻烦的过程。

使用Treesoft数据库管理系统,基于web方式管理postgreSQL,只需安装一次,大家直接通过浏览器使用,维护及监控数据库,大大简化工作量。

监控的指标包括:连接数,数据库大小,表空间,锁情况,QPS事务数等。

Treesoft数据库管理系统,支持直接网络在线维护数据,数据的新增、删除、编辑,表结构的在线维护,在线备份还原等。更多强大的功能等待你的发掘。

补充:PostgreSQL数据库性能监控手段之慢SQL、死锁

之前接触PostgreSQL数据库甚少(此前经常使用mysql、db2),直至入职当前某安全公司后,发现数据库都采用PostgreSQL,由于负责性能测试方向,经常需要诊断数据库方面是否存在性能问题,于是整理了PostgreSQL设置慢SQL、查看死锁等常用监控手段。

一、慢SQL设置步骤

1、笔者以工作中使用的docker为例,PostgreSQL版本为9.5:

PostgreSQL正常安装成功后,在docker 的/var/lib/postgresql/9.5/main/postgresql.conf文件中,

添加以下信息,保存并重启PostgreSQL数据库。

#shared_preload_libraries = '' # (change requires restart)
shared_preload_libraries = 'pg_stat_statements'
pg_stat_statements.max = 1000
pg_stat_statements.track = top

2、在 PostgreSQL库中执行以下SQL:

CREATE EXTENSION pg_stat_statements;

3、初始化信息(清除历史监控信息):

select pg_stat_reset();
select pg_stat_statements_reset();

4、慢SQL查询(TOP 10):

SELECT query, calls, total_time, (total_time/calls) as average ,rows,
    100.0 * shared_blks_hit /nullif(shared_blks_hit + shared_blks_read, 0) AS hit_percent
FROM  pg_stat_statements
ORDER  BY average DESC LIMIT 10;

二、查看是否存在死锁

在 PostgreSQL库中执行以下SQL:

SELECT * FROM pg_stat_activity WHERE datname='数据库名称' and waiting='t';

注:waiting等于t时为死锁

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • postgresql删除主键的操作

    ALTER TABLE tablename DROP CONSTRAINT primaryname. talbename:表示表名 primaryname:表示主键名 例子: postgres=# \d c_tab; Table "public.c_tab" Column | Type | Modifiers ---------------+-----------------------------+----------- uptime | timestamp without time

  • PostgreSQL数据库中匿名块的写法实例

    看代码吧~ test=# DO $$DECLARE i record; test$# BEGIN test$# FOR i IN 1..10 test$# LOOP test$# execute 'select loop_insert(1)'; test$# END LOOP; test$# END$$; DO test=# 看匿名块的执行效果: test=# select count(*) from lineitem; count ------- 7000 (1 row) test=# sel

  • PostgreSQL 主备数据宕机恢复测试方案

    主节点宕机数据,备库数据恢复 背 景 在从节点停止服务,然后往主库不断写入数据,然后把主机宕机掉,启动从库,把主库宕机期间的增量wal日志复制到从库的archive目录下, 执行恢复脚本,则会把主机宕机后的增量数据追加到数据库. 环境 服务器 角色 10.10.56.16 master 10.10.56.18 slave - 配置16 master 的 pg_hba,conf 文件 host all all 10.10.56.0/0 md5 host replication all 10.10.

  • SpringBoot连接使用PostgreSql数据库的方法

    一.介绍 此次更新时间:2020-10-28,现在是上班时间,偷更一下.其实使用IDEA的话无需配置Maven什么的,如果你们公司不是强制要求使用Eclipse的话,只需要有个JDK的环境即可,IDEA自带了一个版本的Maven,还是挺新的,目前IDEA最新版2.2.3的版本.我们也不用按照下面这个步骤去下载Spring Initializr,我们在IDEA中新建项目选择到Maven就行了,干净简洁. 目前在Resources目录下的application大多数是使用yml语法了.现在已经太长时

  • MySQL用户管理与PostgreSQL用户管理的区别说明

    一. MySQL用户管理 [例1.1]使用root用户登录到本地mysql服务器的test库中 mysql -uroot -p -hlocalhost test [例1.2]使用root用户登录到本地mysql服务器的test库中,执行一条查询语句 mysql -uroot -p -hlocalhost test -e "DESC person;" [例1.3]使用CREATE USER创建一个用户,用户名是jeffrey,密码是mypass,主机名是localhost CREATE

  • PostgreSQL 逻辑复制 配置操作

    #### PostgreSQL Logical Replication (逻辑复制) #### Logical Replication (逻辑复制) 为PostgreSQL自己提供的一种方案,主要是通过一方 发布,一方订阅,来实现彼此共同关注的一种技术. 服务器 | 功能 | 10.10.56.16 | 发布者 P1_pub表 | | 10.10.56.17 | 发布者 P2_pub表 | | 10.10.56.19 | 订阅者 P_sub表 | 背 景 一些数据根据业务拆分成一部分P1表.一部

  • Postgresql的日志配置教程详解

    背景 公司的项目中使用了postgresql(简称pg)作为其数据库管理系统,前两天环境突然崩溃了,页面无法打开.经过排查,我发现是数据库所在机器磁盘满了,通过目录和文件排序,原来是pg的日志太多(大约保留了大半年的日志在磁盘上没有被清理). 我看了下pg的日志配置,发现基本都是用的默认配置,日志滚动没有开启,于是乎做了下相关配置优化后对pg进行重启,最后看了pg的日志滚动,恢复正常了.以下是我梳理的关于pg的日志配置项. 配置详解 配置文件:postgresql.conf 配置1:日志开启与关

  • postgresql 查看当前用户名的实现

    查看当前连接的用户名: foo=#select * from current_user; 或 foo=#select user; 查看所有用户名: foo=#\du 补充:postgres 用户管理 首次安装完成 pg 数据库后,会默认自带一个用户, 用户名: postgres 密码: postgres 可以使用命令 \du 查看数据库用户 创建新用户: create user dev with password '******'; 创建完成后,使用如下语句登录: psql -Udev -W 以

  • postgreSQL数据库的监控及数据维护操作

    目前postgreSQL数据库的管理,数据查询等都需要安装postgreSQL软件或安装pgadmin等,远程访问都需要先登录到服务器等繁琐的操作.如果是开发团队,那么每个开发,测试,管理人员都要经历这个麻烦的过程. 使用Treesoft数据库管理系统,基于web方式管理postgreSQL,只需安装一次,大家直接通过浏览器使用,维护及监控数据库,大大简化工作量. 监控的指标包括:连接数,数据库大小,表空间,锁情况,QPS事务数等. Treesoft数据库管理系统,支持直接网络在线维护数据,数据

  • PostgreSQL数据库视图及子查询使用操作

    目录 视图 创建视图 使用视图 视图更新: 删除视图: 子查询 关联子查询 视图 表里面保存的是实际数据,视图里面保存的是SELECT语句(视图本身不存储数据). 从视图中读取数据,此时视图在内部执行SELECT语句,创建一张临时表. 使用视图的好处:其一,视图不保存数据,节省存储设备容量.其二,将频繁使用的SELECT语句保存成视图,每次使用这些语句时候,不用重复书写,只需调用视图.其三,数据保存到表中,要显式的执行SQL更新语句才能更新数据,而视图中的数据会随着原表的变化自动更新. 创建视图

  • PostgreSQL向数据库表中添加行数据的操作

    实例: 例如数据库中有一个2013Rainfall数据表 想在下面接着插入一行数据,在pgAmin III 界面中,点击SQL,并其界面下输入, 如下图所示 并运行,同时刷新编辑数据界面,可看到数据插入成功, 如下图所示 补充:postgresql向表中插入大量数据 不使用存储过程: insert into schema.table select generate_series(1,10000),'a'; 以上表中有一列int类型列和一列char型列,generate_series(1,1000

  • PostgreSQL数据库事务插入删除及更新操作示例

    目录 INSERT DELETE UPDATE 事务 INSERT 使用INSERT语句可以向表中插入数据. 创建一个表: CREATE TABLE ProductIns (product_id CHAR(4) NOT NULL, product_name VARCHAR(100) NOT NULL, product_type VARCHAR(32) NOT NULL, sale_price INTEGER DEFAULT 0, purchase_price INTEGER , regist_d

  • 在postgresql数据库中创建只读用户的操作

    在pg数据库中创建只读用户可以采用如下方法.大体实现就是将特定schema的相关权限赋予只读用户. --创建用户 CREATE USER readonly WITH ENCRYPTED PASSWORD '123456'; --设置用户默认开启只读事务 ALTER USER readonly SET default_transaction_read_only = ON; --将schema中usage权限赋予给readonly用户,访问所有已存在的表 GRANT usage ON SCHEMA

  • Abp.NHibernate连接PostgreSQl数据库的方法

    Abp.NHibernate动态库连接PostgreSQl数据库,供大家参考,具体内容如下 初次接触Abp框架,其框架中封装的操作各类数据的方法还是很好用的,本人还在进一步的学习当中,并将利用abp.NHibernate类库操作PostgreSQL数据的相关方法做一记录,不足之处让评论指点扔砖. 话不多说,直接开干: 1.vs 新建一个项目,(窗体或者控制台程序或者测试程序) 2.NuGet 获取类库(adp.NHibernate) 还需安装一个pgSQl 对应的驱动 3.新建一个继承AbpMo

  • Python使用PyGreSQL操作PostgreSQL数据库教程

    PostgreSQL是一款功能强大的开源关系型数据库,本文使用python实现了对开源数据库PostgreSQL的常用操作,其开发过程简介如下: 一.环境信息: 1.操作系统: RedHat Enterprise Linux 4         Windows XP SP2 2.数据库: PostgreSQL8.3 3. 开发工具: Eclipse+Pydev+python2.6+PyGreSQL(提供pg模块) 4.说明: a.PostgreSQL数据库运行于RedHat Linux上,Win

  • DBA_Oracle Startup / Shutdown启动和关闭过程详解(概念)(对数据库进行各种维护操作)

    一.摘要 Oracle数据库的完整启动过程是分步骤完成的,包含以下3个步骤: 启动实例-->加载数据库-->打开数据库 因为Oracle数据库启动过程中不同的阶段可以对数据库进行不同的维护操作,对应我们不同的需求,所以就需不同的模式启动数据库. 1. Oracle启动需要经历四个状态:SHUTDOWN .NOMOUNT .MOUNT .OPEN 2. Oracle关闭的四种方式:Normal, Immediate, Transactional, Abort 3. 启动和关闭过程详解   二.数

  • C# 操作PostgreSQL 数据库的示例代码

    什么是PostgreSQL? PostgreSQL是一个功能强大的开源对象关系数据库管理系统(ORDBMS). 用于安全地存储数据; 支持最佳做法,并允许在处理请求时检索它们. PostgreSQL(也称为Post-gress-Q-L)由PostgreSQL全球开发集团(全球志愿者团队)开发. 它不受任何公司或其他私人实体控制. 它是开源的,其源代码是免费提供的. PostgreSQL是跨平台的,可以在许多操作系统上运行,如Linux,FreeBSD,OS X,Solaris和Microsoft

  • PHP实现从PostgreSQL数据库检索数据分页显示及根据条件查找数据示例

    本文实例讲述了PHP实现从PostgreSQL数据库检索数据分页显示及根据条件查找数据.分享给大家供大家参考,具体如下: 主要功能是从postgreSql查询数据,并检索,由于自己刚开始接触,所以难点在于多条数据同时筛选并分页显示出来,写下自己的代码与大家共享. <html> <head> <script type="text/javascript"> /** * 分页函数 * pno--页数 * psize--每页显示记录数 * 分页部分是从真实数

随机推荐