Postgres逻辑复制中,订阅默认关闭流式传输,发布端解码大事务时会在pg_replslot目录生成大量溢出文件,磁盘占用随订阅数成倍增长。将streaming设为on或parallel,可把解码数据直接发送给订阅端,避免发布端磁盘膨胀。Postgres 18已默认parallel,但含TOAST数据时仍可能溢出。
本文介绍如何用 Docker 搭建 pgEdge AI DBA Workbench 全本地化技术栈,共七个容器:Postgres、负载生成器、llama.cpp 模型服务、工作台服务器、采集器、告警器和客户端。使用 Qwen3.8-27B 推理模型与 nomic-embed-text 嵌入模型,通过 OpenAI 兼容接口调用,无需外部 AI 服务,适合气隙或敏感环境,可低成本实现 Postgres 智能监控与诊断。
作者回顾了20多年与PostgreSQL的深厚渊源,从早期因VACUUM缺陷提交reindexdb工具,到担任DBA处理大型数据库危机,优化配置、升级硬件、构建高可用集群,并开发管理工具。他通过会议演讲和文章分享经验,最终成为Postgres专家,强调社区贡献与知识传承的重要性。
Postgres 18 新增 UUID v7 函数,通过嵌入时间戳使键值有序,解决 v4 随机 UUID 导致的 B-tree 索引碎片化和性能下降问题。v7 索引更紧凑,减少存储占用,并支持提取时间戳。但需注意其泄露时间元数据及高并发下可能引发锁竞争,而 BIGINT 或 snowflake 等替代方案也值得考虑。
本文介绍如何构建Postgres扩展querymem,用于预测查询内存消耗。通过解析查询、生成执行计划并遍历节点,累加work_mem和hash_mem_multiplier估算峰值内存。扩展支持GUC配置,可自动记录或阻止超限查询。作者强调源码是最终文档,鼓励开发者探索Postgres内部机制。
本文介绍如何构建Postgres扩展querymem,用于预测查询内存消耗。通过解析查询、生成执行计划并遍历节点,累加work_mem和hash_mem_multiplier估算峰值内存。扩展支持GUC配置,可自动记录或阻止超限查询。文章强调从源码学习Postgres内部机制,并演示了实际测试结果。
Postgres 19新增三项实用语法:ON CONFLICT DO SELECT实现“获取或创建”,返回现有行并支持行锁;GROUP BY ALL自动分组非聚合列,简化查询;COPY支持JSON格式输出,可生成合法JSON文档。这些改进减少样板代码,提升日常开发效率。
Postgres 19 新增了随机日期/时间函数,支持指定范围并保持类型一致,简化了测试数据生成。同时引入三个新函数(pg_get_role_ddl、pg_get_tablespace_ddl、pg_get_database_ddl),可直接获取角色、表空间和数据库的DDL定义,无需依赖外部工具如pg_dumpall,提升了数据库管理的便捷性。
Postgres 19改进了autovacuum调度,引入基于分数的优先级系统,按表的事务ID年龄、死元组数等指标排序,并新增权重参数调整优先级,支持并行处理索引。新视图pg_stat_autovacuum_scores提供透明度,提升维护效率。
感谢Shaun的演讲和参与者的讨论,欢迎全球参与者,鼓励本地人下次亲自参加并享受披萨。
Tembo在芝加哥Postgres用户组展示pg_timeseries扩展,比较Hydra列式存储与Heap存储性能。测试显示,列式存储在插入和删除操作上表现更佳,尤其在数据量大时优势明显。更新操作上,列式存储也略胜一筹。结果表明,pg_timeseries在管理列式数据时性能优越,甚至可能比纯Postgres Heap分区更快。Tembo计划扩展测试以涵盖更多使用场景。
This post contained content that could not be rendered in the Atom feed. Please use the official post link: https://tembo.io/blog/optimizing-memory-usage
本文介绍了在Postgres中创建简单虚拟宠物游戏的方法,包括玩家与宠物互动的限制和使用Row Level Security和触发器实现这些限制。还介绍了使用pg_cron创建游戏循环和方便玩家操作的包装函数。
Postgres是最好的RDBMS引擎,因为它受欢迎、拥有活跃的社区、丰富的功能和添加扩展的能力。外部数据包装器的可用性使得Postgres能够与各种数据源进行交互。文章建议,在Postgres已经提供了强大的解决方案时,没有必要创建新的数据库引擎。
本系列的前几部分介绍了部署高可用Postgres集群的策略和注意事项。在第三部分中,我们建议使用现有的社区或商业工具来构建故障转移系统和备份系统,如EDB Failover Manager、Repmgr、Patroni、Pg_auto_failover、EDB Postgres Distributed、Barman和pgBackRest。这些工具比自己构建的系统更可靠。
本文介绍了构建高可用Postgres集群的技巧,包括使用三个节点的群集、使用公正的第三方、通过代理层进行路由、实施硬隔离和备份至少有三个副本。关键词:Postgres、高可用、集群、路由、备份。
本文讨论了构建高可用Postgres集群时的注意事项,包括制定合理的期望、定义RPO和RTO、使用n-safe同步和流式WAL备份、使用pg_rewind工具进行快速故障转移、使用复制槽和逻辑复制功能减少停机时间、介绍EDB Postgres Distributed(PGD)的优点和双向功能。
本文介绍了Postgres在EDB Postgres Distributed中的高可用性(HA)应用,包括极端HA的定义和实现,双向冲突管理和子组共识等特性,以及维护期间如何保持高可用性。最终提出了一个简单的定义,即支持多数派的部署必须提供一个独立于集群组成的可写接口,保持99.999%的最小RTO。
本文讨论了一个金融机构在高峰期处理大量交易时遇到的问题,并介绍了他们为减小故障影响所做的工作。
In Part 1, we examined how Postgres behaves on older hardware with various allocations of Shared Buffers. This time we repeat those benchmarks on more contemporary hardware equipped with modern...
完成下面两步后,将自动完成登录并继续当前操作。