选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

PostgreSQL 博览 RSS 订阅

当天收录 34 条。

PostgreSQL ODBC 新版修掉栈溢出与双重释放

PostgreSQL ODBCPostgreSQL 新闻

PostgreSQL ODBC 驱动发布 REL-18_00_0002,修的多是安全问题:getPrecisionPart() 里的栈缓冲区溢出、SQLDisconnect 清理阶段的 double-free 堆损坏,以及多处越界读取,日志里也开始屏蔽敏感连接参数。功能上升级到 OpenSSL 3.5.5,修正了 SQLPrimaryKeys 误把 INCLUDE 列纳入结果,并拒绝非法游标名。用 ODBC 连 PostgreSQL 的应用值得尽快跟进。

备库 OID 重用会让 17.6 反复致命崩溃

Bertrand DrouvotPostgreSQL hackers

有用户报告 PostgreSQL 17.6 反复 FATAL 崩溃,信息是 trying to drop stats entry already dropped。Bertrand Drouvot 用自定义扩展手动指定下一个 OID,复现了 OID 重用的场景。根因在备库:某后端持有该 pgstat 条目的本地引用,第一次 DROP 回放时它被标记为已删除却无法释放,第二次 DROP 又撞上同一个 OID,于是触发 FATAL。修复提交 850b9218c8e 已回合稳定分支。

视图上组合两个特性会让 PG19 解引用空指针

Paul JungwirthPostgreSQL hackers

在视图上同时用 FOR PORTION OF 更新和 INSTEAD OF 触发器,会让 PostgreSQL 19 解引用空指针。修法是禁掉这个组合,争的是该在哪一步拦:解析、重写还是执行。Paul Jungwirth 起初认为解析阶段够用,因为 relcache 失效会强制重新解析;Tom Lane 纠正说视图是以重写规则的形式存在磁盘上的,后续重写并不会触发重新解析。Paul 随后用测试验证了解析阶段拦截会让服务器崩溃,重写和执行阶段都能正确挡住。

用检查约束换来非分区列上的分区裁剪

Haki Benitahakibenita.com

分区裁剪通常只在按分区键过滤时才生效,按别的列查就得扫遍所有分区。Haki Benita 给出的办法是用检查约束把数据分布告诉优化器:给每个分区上一条形如 session_id BETWEEN 1 AND 4320 的约束,优化器就能靠约束排除法把不相干的分区剪掉。遇到离群值可以写成析取形式的约束,思路借自 PG14 的多区间 BRIN 操作符类;找连续区间用 gaps and islands 那套写法。前提是数据只追加、且过滤列与分区键强相关。

pglayers 把 53 个扩展做成可叠加的镜像层

pglayersPostgreSQL 新闻

pglayers 把 53 个 PostgreSQL 扩展分别打成从 scratch 构建的最小 Docker 镜像层,用 COPY --from 就能叠到官方 PostgreSQL 镜像上,不必自己编译或装包,项目也提供包含全部扩展的预构建镜像。支持 PostgreSQL 17、18、19 与 amd64、arm64。对 18 及以上版本,它借 extension_control_path 做隔离布局,避免文件冲突,允许同一个库多版本共存。

PDU 在实例起不来时直接从数据文件捞数据

PDU 项目PostgreSQL 新闻

实例起不来的时候,常规 SQL 工具都用不上。PDU 直接读数据文件和 WAL 归档,不修改原始数据目录,在离线状态下重建库、schema 和表的元数据,把单表、整个 schema 或整库导出成 CSV。对误删误改,它还能从 WAL 记录或归档里还原受影响的行,不依赖 VACUUM 之前残留的元组。支持 PostgreSQL 14 到 18。作者把它定位成应急恢复的辅助手段,不能替代常规备份或时间点恢复。

Barman 3.19 让标准恢复命令直接用上云端备份

EDBBarman

Barman 是 EDB 维护的 PostgreSQL 远程备份与灾难恢复工具,基于时间点恢复,让 DBA 在一处管理多台远端服务器的备份目录和恢复流程。3.19.0 与 3.19.1 分别发布于 5 月 20 日和 26 日,本次一并公告。3.19.0 的重点是云存储恢复:标准的 barman restore 命令现在可以直接用于云上备份;同时引入了备份的导出与导入命令,另有若干改进和缺陷修复。3.19.1 是在此基础上的修复版本。

Autobase 2.9.0 把日常集群管理搬进界面

vitabaksAutobase

Autobase 2.9.0 把重心放在部署之后的日常管理。认证从共用一个访问令牌改成按邮箱和密码的独立用户,操作日志随之记录每次变更由谁执行,审计链条补齐。PostgreSQL 参数、pg_hba.conf 和连接池配置现在都能直接在界面里改,专家模式还内置了带 diff 的 YAML 编辑器,应用前可以先看变更。Autobase 面向自托管环境,目标是在自有基础设施上提供接近 DBaaS 的 PostgreSQL 管理体验。

PgDog 解释为什么还要再写一个连接池

PgDogPgDog 博客

PgDog 用一篇文章解释为什么还要再写一个连接池:它想把连接池化、路由、分片和运维手感放在同一个代理层里解决,而不是让用户各拼一套。PostgreSQL 的规模化瓶颈常常不在某条 SQL,而在连接数、代理、拓扑和运维控制面。文章在 Hacker News 上热度不低,说明社区确实还想要一个比 PgBouncer 更贴合分片与云环境的 Postgres 原生代理。选型时仍要看清它与 PgBouncer、Odyssey、pgcat 在成熟度和运维经验上的差距。