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时为死锁
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。
相关推荐
-
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--每页显示记录数 * 分页部分是从真实数
随机推荐
- 用xslt+css让RSS显示的跟网页一样漂亮
- js实现跨域的几种方法汇总(图片ping、JSONP和CORS)
- Linux 自动备份oracle数据库详解
- JS实现具备延时功能的滑动门菜单效果
- Laravel5.5新特性之友好报错以及展示详解
- PHP开发文件系统实例讲解
- js+vml创建3D页面效果代码
- python使用urllib模块和pyquery实现阿里巴巴排名查询
- NodeJs中的非阻塞方法介绍
- 浅析BootStrap栅格系统
- 反向Ajax 30分钟快速掌握
- 用Python和MD5实现网站挂马检测程序
- 解析ActiveMQ的使用说明总结
- 通过jquery实现页面的动画效果(实例代码)
- js的匿名函数使用介绍
- 基于.NET中:自动将请求参数绑定到ASPX、ASHX和MVC的方法(菜鸟必看)
- js常用DOM方法详解
- 合理使用抗生素
- Java编程WeakHashMap实例解析
- 详解webpack 打包文件体积过大解决方案(code splitting)