本文延续上一篇文章 Greenplum管理员的好帮手:统计视图——pg_stat_activity,继续介绍pg_stat_activity的使用问题。其中描述的问题及解决方法同样适用于 腾讯云 云数据仓库 PostgreSQL(CDWPG)。
pg_stat_activity 实际上对于PG 的管理是非常重要的,下面我们看看如何从多个角度来从pg_stat_activity 对PG 进行管理。
pg_stat_activity这张表我们可以根据client_addr进行聚合统计,计算出每个ip当前连接数
腾讯云 云数据仓库 PostgreSQL(Cloud Data Warehouse PostgreSQL)(以下我们简称CDWPG)为企业提供简单、快速、经济高效的 PB 级云端数据仓库解决方案。云数据仓库兼容 Greenplum 开源数据仓库,是一种基于 MPP(大规模并行处理)架构的数仓服务。借助于该产品,可以使用丰富的 PostgreSQL 开源生态工具,实现对云数据仓库中海量数据的即席查询分析、ETL 处理及可视化探索;还可以借助云端数据无缝集成特性,轻松分析位于 COS、TencentDB、ES 等数据引擎上的 PB 级数据。
本文描述问题及解决方法同样适用于 腾讯云 云数据仓库 PostgreSQL(CDWPG)。
锁是实现数据库并发控制必不可少的功能,PostgreSQL数据库通过其特有的多版本属性实现了MVCC,实现了读不阻塞写,写不阻塞读。PostgreSQL中表锁有八个级别,不同的锁对应了不同的排他级别。值得注意的是同一时刻两个事务不能再同一个表上获取相互冲突的锁,但是一个事务是永远不会与自己冲突的,一个事务里连续获取两个有冲突的锁类型是没有问题的。
POSTGRESQL 的灵活性想必是众人皆知的事情,扩展方式的数据库在功能方面是有很多益处的。
最近在学习PostgreSQL 技术体系,前面几篇文章介绍了 认识 PostgreSQL 基础权限体系,PostgreSQL 相关系统日志参数,今天学习一下常用的命令。
PostgreSQL 14与2021年9月发布,其中包括很多性能改进和功能增强,包括监控方面的功能提升。下面是一些关键内容。
在数据库集群中,有3个配置文件,分别是:postgresql.conf,pg_hba.conf和pg_ident.conf。其中postgresql.conf为服务器主要的配置文件,pg_hba.conf是客户端认证配置文件,pg_ident.conf用来配置哪些操作系统用户可以映射为数据库用户。
我们在生产环境可能经常遇到长sql,长sql对数据库的影响还是挺大的,不仅可能对主机资源消耗较大,还可能会阻塞其他sql的正常执行,所以对于长sql我们要尤其注意。一般生产环境都会配置长sql告警,可以根据业务情况调整告警阈值。
最近经历了一些事情,貌似也更深层的懂得了一些之前就“懂得”的道理,也理解了之前一些不能理解的人和事。最近也反思之前所做的一切,其实都和爱有关,乔布斯曾经说过,如果你爱他,你能更深层次的切入,因为任何一件事情如果想深层次的理解,都和你爱不爱他有关,越往深层次去做,越枯燥,越难受,只有你爱了他,才能继续走下去。 这也是为什么大部分“混社会”的人都只能叫,从业者,而不是专家的原因之一吧。
处理办法:因提示的是数据库正在被其他用户所使用,所以需要先关闭连接该库的会话即可。 关闭连接的方式在PostgreSQL9.2及以上版本可以直接通过以下方式处理:
PostgreSQL是一款功能非常强大的开源关系型数据库,它支持哈希索引、反向索引、部分索引、Expression 索引、GiST、GIN等多种索引模式,同时可安装功能丰富的扩展包。相较于Mysql,PostgreSQ支持通过PostGIS扩展支持地理空间数据、支持嵌套循环,哈希连接,排序合并三种表连接方式等一系列的强化功能。本文主要整理总结了30个实用SQL,方便大家可以高效利用PostgreSQL。
PostgreSQL 最大的问题就是vacuum,只要PG的实现多版本和UNDO的方式不改变,那么这个话题就会一直继续,到永远。
数据库监控,其实是一个收集指标,分析指标,最终得出系统当前状态数据的结果.同时对于关键指标正常的情况和非正常的情况,进行分析最终得出阈值,在触发阈值后开始进行报警. 另外监控还有两个用途:一是用于历史数据分析和展示,帮助我们确定系统的中长期趋势,从而帮助我们计划升级;二是在出现问题时立即采取行动.
SQL SERVER ORACLE MYSQL 的系统表一个比一个多,系统表如同一个个小密探,如果你恰巧知道他们的名字,并且还知道他们的身世,那很快你就会如同找到一个蜜洞 secret broadcast, 然后就对你要操作的系统一目了然。
在一次系统迭代后用户投诉说无法成功登陆系统,经过测试重现和日志定位,最后发现是由于用户在ui上进行了某些操作后,触发了堆栈溢出异常,导致数据库里的用户登陆信息表的数据被锁住,无法释放。这个表里存放的是用户的session信息。
查询锁表语句和 pid: select pid, query from pg_stat_activity where datname='数据库名' and wait_event_type = 'Lock'; 可以看到那些执行 sql 语句的进程被锁了,卡住了。
最近偶尔需要处理一些客户问题,这里记录更新下常用命令 OS tcpdump -i eth0 -s 0 -w s2_s.cap port 3006 strace -T -tt -e trace=all -p 21231 strace -T -tt -e trace=all -o file -p 21231 perf top --call-graph=fp --dsos=/data01/bin/pg1017/bin/postgres # Sample on-CPU functions for
PostgreSQL的统计收集器是一个支持收集和报告服务器活动信息的子系统。 目前,这个收集器可以对表和索引的访问计数,计数可以按磁盘块和个体行来进行。它还跟踪每个表中的总行数、每个表的清理和分析动作的信息。它也统计调用用户定义函数的次数以及在每次调用中花费的总时间。
本文主要是我日常使用的一些运维SQL和整理于互联网上的SQL,为了方便日常的使用,特把其汇总起来,遇到常用的时将会进行补充该文,欢迎大家在评论区进行提出一些常用的SQL。
当多个会话同时访问数据库的同一数据时,理想状态是为所有会话提供高效的访问,同时还要维护严格的数据一致性。那数据一致性通过什么来维护呢,就是通过 MVCC(多版本并发控制) 。
📷 POSTGRESQL 的冻结炸弹💣,大多是只听说过,没有遇到过,实际上想遇到冻结炸弹也是不容易。最近差点发生一次冻结炸弹,惊险之余的总结一下怎么不在差点发生这个问题。 关于冻结炸弹的原理,文章很多,这里不进行赘述,先说说事情发生的情况,收到报警,发现数据库最大age xid 的告警,随即通过pg_stat_activity查询发现有大量的查询语句运行时间过长,并且一直未停止,随即进行查杀,将这些语句查杀后,报警停止。 随即开始反思到底有哪里没有做到位 在梳理之前我们需要在简单的重复一下,PG 这
PostgreSQL与MySQL语法有一些细微差异,记录一下PostgreSQL常用的SQL语句。
MOP 不用多说,指的就是 MySQL、Oracle、PostgreSQL 三种目前最主流的数据库,MOP 系列打算更新 MOP 三种数据库的索引知识、高可用架构及常用 SQL 语句等等,上面已经更新了 MOP 索引相关的文章,今天打算整理一下这三种数据库的常用 SQL 知识,由于文章过长,今天更新中间的一篇之 MySQL 篇。第一篇 Oracle 相关的详见下方链接:MOP 系列|MOP 三种主流数据库常用 SQL(一)。第二篇 MySQL 常用 SQL详见下方链接:MOP 系列|MOP 三种主流数据库常用 SQL(二)。
| 导语 数据库在执行过程中经常会遇到有SQL执行时间超长,互相阻塞的问题。如何快速找出罪魁祸首,并且干掉此类语句让流程继续,本文将简单为大家讲明。
对 PostgreSQL 的性能问题进行监控至关重要。PostgreSQL 是一个强大的开源关系数据库系统,以其健壮性、可扩展性和对可扩展性和标准符合性的强调而脱颖而出。在本 PostgreSQL 监控指南中,我们将介绍应监控的关键 PostgreSQL 指标、PostgreSQL 监控的最佳实践以及一些可以设置 PostgreSQL 监控的工具。
Prometheus:是从云原生计算基金会(CNCF)毕业的项目。Prometheus是Google监控系统BorgMon类似实现的开源版,整套系统由监控服务、告警服务、时序数据库等几个部分,及周边生态的各种指标收集器(Exporter)组成,是在当下主流的监控告警系统。
如下教程需要先安装这个组件:yum install postgresql10-contrib
我们目前的postgresql是主从流复制模式,standby没有对外提供服务,只当做热备用。
当我们收到反馈说数据库响应慢或者压测过程中数据库有报错,第一步先收集数据库服务器资源使用情况,这一步是处理所有故障的前提。
最近问问题的同学挺多的,也有问有没有群的,实在是忙没有建群,所以问的人多了,想想还是建一个群,但本人写文章不懒,其他的比较懒,因为问POLARDB 的问题的多,所以建立了一个 POLARDB 和 PG 以及文章问题的讨论群。希望能帮助自己也帮助大家共同提高,要进群的,可以添加微信 liuaustin3 ,来申请加群。
我看了下GP Master端,看到负载并不高,当然这是一个初步的检测,如果集群响应缓慢,则很可能是segment节点上出现了延迟。一看则吓一跳,这是一个segment节点的load负载。
yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
--查询阻塞的sql( 死锁了,没有执行通过的sql ) select * from pg_stat_activity aa, ( select a.locktype,a.database,a.pid,a.mode,a.relation,b.relname from pg_locks a join pg_class b on a.relation=b.oid where upper(b.relname)='FX_WDSJ_DSZH' ) bb where aa.pid=bb.pid and
本文主要用来记述pg数据库的相关操作和异常排查指南,继上一篇博客之后,异常的频繁更新,导致死亡元组指数级增长之后,空间占用也成倍增长,逻辑问题导致了数据库问题,但细想之下也发现,当pg在面对海量数据的更新删除之后,频繁的autovacuum会导致数据库大量的I/O,完了又会影响其他进程,就参数配置来看,还是有蛮多优化的空间的,毕竟空间和时间是两个相生相克的关系。就目前的默认的配置来看,手动标记60w数据执行vacuum标记清理花了6分钟,直接清空死亡元组也差不多这个时间,当空间膨胀到300g的时候数据量达到140w,vacuum已经有点吃不消了执行了半个小时也没有看到执行结束,至少在频繁更新的情况下,可见vacuum还是有他的局限性,就像官网提示的:Plain VACUUM may not be satisfactory when a table contains large numbers of dead row versions as a result of massive update or delete activity. 而且默认配置的的自动间隔是1分钟,我觉得这里面有很大的优化空间,尤其是海量数据频繁更新和删除的时候,当autovacuum的执行时间超过1分钟之后,就需要注意系统的死亡元组数量了,类似于当我打扫垃圾的速度低于产生垃圾的速度此时垃圾只会越来越多,当然这是在大数据量特定频繁更新和删除场景的情况下,结合相关的配置产生的一种思考。 需要注意的配置主要有autovacuum_max_workers可以根据cpu核心数配置,autovacuum_work_mem工作内存和vacuum_scale_factor规模因子,
近两天总结了下PostgreSQL的基本操作命令,对PostgreSQL也有了一个基本的认识。 PostgreSQL的功能还是很丰富的,有序列,支持db link,基本Oracle里有的概念它这里也有,目前来看不支持package。 风格和Oracle也类似,没有MySQL中快捷方便的show create table 这样的语句。 从我的使用习惯来说,我基本关注以下的一些方面。 查看数据库的配置 查看用户信息 查看会话连接信息 show tables的类似方法 用户的权限查看 建表语句 表空间信息 对象
Redis数据库查看连接的客户端 [root@VM_8_24_centos ~]# redis-cli -h 10.0.4.6 -a yourpassword 10.0.4.6:6379> client list addr=100.120.205.19:1024 fd=9 cmd=client age=3 idle=0 proxy=33c6e51a9cc4771fb5836880f86a860f 10.0.4.6:6379> exit [root@VM_8_24_centos ~]# Myslq数据库查看
PG运维老师咨询过这样的一个问题:PG生产运维默认开启auto_vaccum参数,通过pg_stat_activity常常看到有vacuum table的行为,那我怎么样才能知道当前进程的vacuum执行到哪里了呢?完成了百分之多少?
1、查看表是否有锁: select a.locktype,a.database,a.pid,a.mode,a.relation,b.relname from pg_locks a join pg_class b on a.relation = b.oid where upper(b.relname) = 'TABLE_NAME'; 2、根据上面查出的pid进行查找锁对应的SQL语句: select usename,current_query ,query_start,procpid,client
PostgreSQL 可以说是目前功能最强大、特性最丰富和结构最复杂的开源数据库管理系统,其中有些特性甚至连商业数据库都不具备。这个起源于加州大学伯克利分校的数据库,现已成为一项国际开发项目,并且拥有广泛的用户群,尤其是在海外,目前国内使用者也越来越多。
本文描述问题及解决方法基于 腾讯云数据仓库 TCHouse-P( Tencent Cloud House-P,TCHouse-P )。
作者介绍 shuobjli(李硕),腾讯云数据库专家工程师,主要研究方向为数据库优化器、执行器、索引管理等,目前主要负责CDW PG优化器方面的研发工作。 背景介绍 本文主要介绍CDW PG全局视图工具的最佳实践。CDW PG作为分布式数据库,执行query需要多个CN和DN交互运行,对于复杂查询,甚至会出现多层调用的情况。CN和DN出现生产者以及消费者之间的依赖关系,问题相对比较复杂,例如死锁、程序挂起、节点报错等情况。在没有有力定位工具的情况,很难在运维过程中在短时间内定位相关问题。本工具适用于以
最近小伙伴问,怎么就开始写python了, 没有办法生活所迫,IT不就是的一辈子学习,不会写python想在DB圈混是越来越难。机器多,问题多,就两双手,所以程序如果可以解决60-80%的问题,至少工作会轻松一些。理论一堆,但处理问题疲软就尴尬了。
作为可以替换ORACLE 重要的一员,PG 是很值得学习。 今天总结一下 PostgreSQL, 如何进行故障的排错,小道消息是,昨天上午还是小道消息的,估计今天已经消息人尽皆知了,中国ORACLE 研发中心 dismission, N+6 外企还是很阔绰的。 网上也是讨论一堆中年人,就这样被抛弃了,如果知识不更新,脑子里面都是ORACLE ,恐怕是........
B. pg_replication_slots视图中lag字段值表示当前与主库之间的延迟
要保持一个Greenplum数据库系统高效运行,必须对数据库定期清理过期数据并且更新表统计信息, 这样查询优化器才能有准确的信息。
由于现今大部分的应用是使用了数据库连接池的,所以当页面或接口访问完后,数据库的连接并不会马上断开,这导致有时候想用navicat删除某些因测试目的建立的数据库时,会导致删除失败,提示
领取专属 10元无门槛券
手把手带您无忧上云