↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

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

PostgreSQL 博览 RSS 订阅

每日精选 PostgreSQL、数据库与云计算资讯

26 条

WAIT FOR LSN 合入死锁与唤醒竞态修复

Xuneng ZhouPostgreSQL

PostgreSQL 开发分支已提交一组 WAIT FOR LSN 修复,此前讨论的等待竞态有了实质进展。备库会拒绝在持有重量级锁时等待尚未到达的 LSN,避免查询与 WAL 回放互相等待、却无法被死锁检测器发现。配套提交补上了 WAL 段隐式刷盘后的等待者唤醒,并在升主结束时重新读取回放位置,防止使用旧值误报已退出恢复。这些改动完善了复制位点等待的并发语义,目前确认的是代码提交状态。

扩展容器的 SBOM 需要覆盖构建依赖与许可证

Jeremy SchneiderArdent Performance Computing

为 CNPG-Extensions 构建容器时,Jeremy Schneider 发现,生成软件物料清单并不等于完整追溯供应链。Rust 工作区、仅来自 Git 的依赖及 Debian 包许可证,都可能被扫描工具遗漏;扩展显示的 SQL 版本也可能与安装包版本不同。他结合多种工具补全依赖和许可证,再用 Cosign 签名与附加证明关联产物。这份工程记录还提醒维护者,测试版进入稳定分发渠道仍需明确的发布策略。

HorizonDB 将持久化与回放工作下移到存储层

Adam ProutMicrosoft

微软解释了 Azure HorizonDB 的存储分工:计算节点只提交 WAL,不直接写数据页,页面由存储服务按日志重建。独立的 WAL 服务负责持久化与分发,Page Server 维护页面状态,主节点和只读副本共享存储。日志过滤服务进一步按页面分片转发记录,减少计算侧的网络与处理负担。脏页刷写、部分复制和归档职责因此离开 PostgreSQL 计算进程,使查询与事务可以使用更多计算资源。

CloudWatch 支持监控 EC2 自建 PostgreSQL

Nirupam Datta、Joe Alioto、Cade KettnerAWS

AWS 将 CloudWatch Database Insights 扩展到 EC2 上自行管理的 PostgreSQL,可与 RDS、Aurora 放在同一监控界面排查问题。主机代理采集数据库活动、语句统计与操作系统指标,支持关联数据库负载、等待事件、热点 SQL、执行计划和日志,历史指标可保留 15 个月。自建实例尚不支持跨区域、跨账户的集群视图,也没有锁分析等全部托管功能,接入时仍需核对可用能力。

1.1.1.1 默认验证后量子 DNSSEC 签名

Sebastiaan Neuteboom、Bas WesterbaanCloudflare

Cloudflare 的 1.1.1.1 解析器已默认支持 ML-DSA-44 后量子 DNSSEC 验证。新签名长达 2420 字节,超出常用 UDP 响应预算,因此解析器需要妥善处理截断与 TCP 重试。若经过认证的父区声明存在后量子信任路径,解析器会要求至少一条后量子路径验证成功,避免攻击者降级到传统签名。这是解析端的能力更新,完整信任链的部署仍涉及权威 DNS 服务和注册商对新算法的支持。

workerd 重写模块注册表并完善 Node.js 兼容

Logan Gatlin、James SnellCloudflare

Cloudflare 重写了 Workers 的模块注册表,将模块标识统一为 URL,并按查询参数和片段区分模块实例。新实现补齐 import.meta 属性与解析能力,支持符合 Node.js 规则的同步 require(esm),通过惰性编译和缓存共享减少重复工作。它也严格校验导入属性,并对含顶层 await 的模块保留同步加载限制。目前须显式开启 new_module_registry 兼容开关,迁移时应回归模块解析与加载行为。

20 条

逻辑复制溢写会按订阅数量放大发布端磁盘压力

Shaun ThomaspgEdge

逻辑复制的磁盘告警未必来自 WAL 保留。多订阅实验显示,大事务超过解码内存预算后,会在每个复制槽的 pg_replslot 目录各写一份溢出数据,提交后文件又迅速消失。开启 streaming 可将这部分压力转移至订阅端;parallel 模式有空闲工作进程时还能减少订阅端临时文件。PostgreSQL 18 虽已将新订阅默认值改为 parallel,旧设置和 TOAST 数据仍需关注,排查时应同时观察溢写与流式传输计数。

连接数上限应按并发与内存预算设定

Christophe Pettusthebuild.com

Christophe Pettus 将 max_connections 解释为资源预算与过载保护,而非吞吐量旋钮。该参数会影响启动时分配的共享结构,真正繁忙的连接还会叠加算子内存和锁竞争;仅按实例内存给出数千连接的云端默认值,可能把连接池问题拖成数据库故障。文章建议用事务连接池吸收应用连接,结合实际活跃量、角色连接限制及运维余量定额,并强调调高时先改备库、调低时先改主库,避免备库因参数不足暂停恢复。

PostgreSQL 19 聚合钩子可消除多余排序

Andrei LepikhovpgEdge

自动生成的 SQL 可能在求和时附带无效排序,浪费执行时间。pgEdge 演示 PostgreSQL 19 测试版的聚合规划支持钩子,借助扩展在规划阶段改写适用类型的 SUM,移除冗余 ORDER BY。pgEdge 称,千万行实验由约 5.7 秒缩短至 3.7 秒,同时解释了 DISTINCT、排序集聚合与依赖关系的边界。目前为聚合绑定支持函数的 DDL 尚未合入,示例仍需修改系统目录,绑定关系也不能随备份恢复或大版本升级自动保留。

WalShadow 从物理 WAL 直达 ClickHouse

Sai SrirampurClickHouse

ClickHouse 开源 WalShadow,将 PostgreSQL 物理 WAL 在源库之外解码,再写成分析库原生数据块。它用影子实例跟踪目录变化,覆盖初始装载、持续复制与表结构演进。厂商称,在同区单表测试中,提交到可查询约需 200 毫秒,吞吐接近源库。项目仍为开发预览,要求 PostgreSQL 16 以上且源库与影子实例同大版本;接入前还须确认部署环境开放物理 WAL。

Tom Lane 回顾 PostgreSQL 三十年的架构取舍

Elizabeth Garrett ChristensenSnowflake Engineering

在 PostgreSQL 三十周年访谈中,Tom Lane 从进程模型、共享内存与 WAL 恢复,讲到 MVCC、规划器和扩展边界。他强调独立进程带来的代码简洁性,也解释会话目录缓存为何使连接复用与线程化成为棘手问题;后端崩溃后,为保护共享内存仍须重启其他后端。对未来,他支持继续探索线程化,同时倾向把能由扩展承担的功能留在内核之外。这些取舍有助于理解连接池、故障恢复与扩展设计背后的约束。

AWS 拆解 Iceberg 物化视图的查询改写

AWSAWS Big Data Blog

重复运行的分析查询常受复杂连接与聚合拖累,业务 SQL 又未必方便修改。AWS 展示了 Spark 自动匹配 Iceberg 物化视图的过程:优化器可替换整条查询或局部子树,按结构或精确形式匹配,并在视图过期时跳过改写。该功能从 EMR 7.12.0、Glue 5.1 起提供,需要显式启用。文章比较预聚合、预连接及完整结果三种设计,说明查询加速与存储、刷新成本和复用范围之间的取舍,适合据此检查真实执行计划。

19 条

PostgreSQL 开发分支将 OID 计数器扩至 8 字节

Michael PaquierPostgreSQL Git

PostgreSQL 开发分支已把 OID 计数器扩为 8 字节,并新增 GetNewObjectId8()。检查点、WAL 与 pg_upgrade 等工具同步调整,避免计数值在恢复或升级时被截断;原有 32 位接口继续保留兼容行为。这是支持更大 TOAST 对象标识的基础工作,8 字节 TOAST 指针本身仍在讨论中。提交同时提升系统目录、控制文件和 WAL 格式版本,运行开发快照的团队需要留意数据目录兼容性;该变更尚未正式发布。

PostgreSQL Anonymizer 3.2 修复三个高危漏洞

DaliboDalibo GitLab

Dalibo 的脱敏扩展 3.2 修复了自定义类型与运算符提权(CVE-2026-19633)、规则导入 SQL 注入(CVE-2026-19634)和并行静态脱敏提权(CVE-2026-83534),并默认禁止 superuser 执行 masking;anon.pseudo_* 被官方称快约 40 倍的 anon.seeded_* 取代。公告提示 PostgreSQL 14 及更早版本升级来的实例风险最高。

pg_vault_tde 升级前须先导出旧版 TOAST 数据

Miriadepg_vault_tde

pg_vault_tde 为 PostgreSQL 17 和 18 提供表级透明加密,借助外部密钥服务保护落盘数据。1.7.1 修正了行外 TOAST 数据的附加认证数据计算,旧版写入的这类数据因此无法在新版通过认证。项目要求先在旧二进制下导出受影响表,再安装新版并恢复;直接替换软件包可能导致大字段无法读取。升级前应核对加密表的 TOAST 使用情况,并依照版本文档安排导出、恢复和应用验证。

AlloyDB Omni 的 RPM orchestrator 正式 GA

Google CloudGoogle Cloud 博客

Google Cloud 宣布面向 Red Hat 的 RPM orchestrator 正式 GA,与 AlloyDB Omni 18.3.0 一同发布,这套 PostgreSQL 兼容引擎在虚拟机、裸机、边缘和断网环境因此有了非容器的高可用部署路径。公告里的性能表述均为厂商口径。这条路径会带来新的控制平面、角色和备份依赖,评估时应比较 WAL 与 PITR、复制拓扑、fencing 和 pg_upgrade 的实际运维成本。

CodeQL 2.27.0 把 libpq 查询接口纳入 SQL 注入建模

GitHubGitHub Changelog

CodeQL 2.27.0 新增 Linux arm64 原生发布包,并扩展了 C/C++ 分析中的 PostgreSQL 客户端接口模型。PQexec、PQexecParams、PQprepare 等 libpq 查询接口现在被建模为 SQL 注入的数据流终点,使用这些接口的项目可以获得更完整的查询追踪。对维护数据库驱动或原生应用的团队,这次更新同时改变扫描工具的部署选择与检查范围;升级后适合复核新结果,并确认查询构造与参数绑定方式。

PlanetScale 开放 Neki 分片 PostgreSQL 预览

Nick Van WiggerenPlanetScale

PlanetScale 推出 Neki 平台预览,把原生 PostgreSQL 分布到多台机器,应用通过标准协议连接路由器,由分布式规划器分派查询并汇总结果。每个分片保留一主至少两副本,跨三个可用区部署;用户用 JSON 定义分片键和表的分组,并通过内置工作流执行在线改表、升级与重新分片。系统也允许先以单分片运行,再逐步扩展。当前预览仍可能出现破坏性变更,官方要求暂不承载生产负载。

Spanner 取消同一事务内多条 DML 的累计 mutation 上限

Google CloudGoogle Cloud 博客

为绕开单个事务约 80,000 次修改的累计限制,应用过去常把一次业务操作拆成多次提交,增加幂等与补偿逻辑。Google Cloud 现将 DML 的修改量改为按语句单独计算,多条语句不再共用这一额度,使更多批量写入可以保留在同一事务中。通过 Mutation API 提交的修改仍受原有累计限制,事务大小限制也继续适用。调整批处理策略时,需要区分所用写入接口,再验证事务大小、锁竞争与重试行为。

GitHub ruleset 可拦截引入未处理 secret 告警的 PR 合并

GitHubGitHub Changelog

GitHub 新增的 ruleset 规则要求 PR 的 head commit 完成 secret scanning,并且该 PR 引入的 secrets 没有 open 状态的告警,两个条件都满足才允许合并,目前面向 Secret Protection 与 GHAS 客户 public preview。push protection 覆盖不了所有 pattern,这条规则把检测变成合并契约,落地前先定 bypass 角色与审计留痕。

31 条

Autobase 2.11 把扩缩、升级与备份收进控制台

Autobase 项目组Autobase 发布说明

Autobase 2.11 补齐了两年前定下的目标:只读副本扩缩、小版本与主版本升级、备份和时间点恢复现在都能在 Console 界面里操作。云端部署会自动创建服务器与配套资源,自有裸机或虚拟机上的集群同样可以加副本。项目方给的口径是小版本升级逐个更新副本再切主,写入中断约 5 到 10 秒;主版本原地升级停机约 30 到 60 秒,蓝绿方案留到以后的版本。

Percona Operator 3.1.0 引入 pg_tde 透明加密

Slava SarzhanPercona 博客

Percona Operator for PostgreSQL 3.1.0 补上三项此前要自行拼装的能力。透明数据加密由 pg_tde 提供,对磁盘上的表、索引和 WAL 加密,两层密钥模型的主密钥交给 HashiCorp Vault;逻辑副本为分析型只读负载提供稳定端点,从 pgBackRest 备份引导初始化;持久化日志把日志留在数据卷上,经 Fluent Bit 转发到 S3。新版还加了 ARM64 支持。

Neon 让 Lakebase 计算节点内存直供 shared buffers

Sunil KamathNeon 博客

Lakebase 的固定规格计算节点此前靠本地磁盘缓存承接热数据。Neon 调整了大规格实例的内存布局,把机器的大部分内存直接分配给 PostgreSQL shared buffers,并以 huge pages 作为底层支持,让热数据页常驻 DRAM,不再绕行本地磁盘缓存。按作者的说法,这既加快了常用数据的访问,也降低了同样工作集下的 CPU 开销。

Karmada 成为 CNCF 毕业项目

CNCFCNCF

CNCF 宣布多集群编排器 Karmada 完成毕业要求,包括第三方安全审计和正式的治理结构;同期的 v1.19 强化了面向分布式 AI 训练的多组件调度,优先级调度进入默认启用的 Beta。毕业证明的是项目治理、安全流程和生产成熟度,并不意味着现有多集群平台可以无风险替换。评估时应先用非生产负载验证跨集群身份与 secrets、网络可达性、持久卷的 RPO 与 RTO 和故障转移回切。

OpenSSL 3.0 LTS 已于 9 月 7 日结束上游支持

OpenSSL ProjectOpenSSL

OpenSSL 官方生命周期表列出 3.0 的支持截止到 2026 年 9 月 7 日,当前 LTS 是支持到 2030 年 4 月 8 日的 3.5。仍留在 3.0 的服务此后不再获得社区安全修复。OpenSSL 常由操作系统、代理、数据库客户端、语言运行时、容器镜像和静态编译产物间接携带,盘点不能只看宿主机的包管理器,还要覆盖镜像层、构建机和离线镜像仓;升级前单独验证 provider、FIPS 与 TLS 互操作性。

30 条

PostgreSQL 19 在两周内被撤下两项功能

Joshua D. DrakeCommand Prompt 博客

Joshua D. Drake 盘点了 PostgreSQL 19 两周内被回退的两项功能:9 月 7 日回退 SQL/PGQ 属性图,连同建立在它上面的修复共 47 个提交;8 月 27 日回退 ALTER TABLE ... MERGE/SPLIT PARTITION,又去掉 14 个。提交信息给的理由是本轮周期来不及处理的多处设计问题。他建议升级规划仍按 18 走,14 的支持则在 11 月 12 日到期。

外键快速路径的批处理层将从 19 回滚

Amit LangotePostgreSQL hackers

Amit Langote 给 REL_19_STABLE 提了两个补丁:一个修外键快速路径逐行检查的快照顺序问题,READ COMMITTED 下先取快照再锁被引用关系会误报外键违规;另一个直接移除批处理层,只保留逐行快速路径。Amit Kapila 又指出快速路径与 SPI 路径的几处分歧,包括扫描键用了索引排序规则而不是列排序规则的缺陷。Robert Haas 支持这个方向,但对批处理能否赶上 20 仍有保留。

ClickHouse 发布 chdb 扩展打通云存储导入

David WheelerClickHouse 博客

ClickHouse 发布 Postgres 扩展 chdb,用进程内的 chDB 引擎在 Postgres 与云存储之间做格式转换,读写 ClickHouse 支持的全部数据格式。官方基准是从 S3 导入 100 万行的 NYC Taxi 宽表:在 4 vCPU、32 GB 的机器上,pg_duckdb 和 pg_lake 处理 CSV、JSON、Parquet 要多花两到三倍时间,只有 aws_s3 接近它。

PostGIS 3.7.0rc2 发布并移出两个扩展

PostGIS 项目组PostGIS

PostGIS 团队发布 3.7.0rc2,修掉 3.7.0rc1 以来的问题,推荐搭配 PostgreSQL 19 Beta 3 与 GEOS 3.15.0,可用于 PostgreSQL 14 到 19beta3。这一版有几处破坏性变更:不再支持 PostgreSQL 12 和 13,也不再支持 GEOS 3.10 以下;address_standardizer 与 tiger_geocoder 迁出主仓库。

给 AI agent 的数据库边界必须落在数据库里

Nicole GhalwashTiger Data 博客

Tiger Data 的 Nicole Ghalwash 主张 agent 的访问边界只能在数据库一侧强制,客户端限制不可靠:不要把管理员凭据复用给 agent,而是建专用只读角色;破坏性或试验性操作指向 fork 或只读副本;记录 agent 执行过的每一条查询;改 schema 引入人工审核。只读也挡不住 prompt injection。文章还提到当前 MCP server 实现质量参差,约三分之一通不过基本安全测试。

用 Calico 给三层应用和数据库落默认拒绝策略

Wellingtone LuvongaCYBERTEC 博客

Cybertec 的 Wellingtone Luvonga 用 Calico 演示怎样把零信任落到 frontend、backend 与 PostgreSQL 三层:先在命名空间上加 default-deny ingress,再逐层按标签补 ingress 和 egress 规则。文中提醒通信要求两端同时放行;写 egress 策略必须放行到 kube-system 的 53 端口,否则 CoreDNS 解析会静默失败。

24 条

SQL/PGQ 的回退在 19 与 master 两个分支完成

Peter EisentrautPostgreSQL hackers

Melanie Plageman 提议在 PostgreSQL 19 回退 SQL/PGQ 的目录表示与 pg_dump 支持,理由是遗留问题不少,等到 20 不受向后兼容约束时再彻底修更合适。Peter Eisentraut 同意并追问回退范围,Robert Haas 主张 REL_19_STABLE 和 master 都退,认为这个功能需要大改。Peter Eisentraut 随后确认回退已经完成,线程没有留下其他待办。

社区讨论把 PostgreSQL 19 推迟到 2027 年春季

Joshua DrakePostgreSQL hackers

PostgreSQL 19 的发布讨论进入关键阶段:多个功能面临回退,社区对这个版本的信心下降。Bruce Momjian 指出,移除功能之后还要再走一轮 beta 测试,这种情况前所未有。Joshua Drake 提议把发布推迟到 2027 年春季,理由是让存疑的功能有时间成熟,顺带解决夏季测试窗口的老问题,也免得大量开发工作被舍弃;他还说目前没有客户因为等 19 受阻,18 的采用率本来就偏低。

备库 FSM 撕裂页回归促成回退提交 c06d1a4

Alexander KorotkovPostgreSQL hackers

提交 c06d1a4 带来一个回归:恢复期间 heap_xlog_* 可能把 FSM 页标记为脏页,restartpoint 之后崩溃就可能留下撕裂写入,而恢复结束时并不会修复它们。FSM 自己用 RBM_ZERO_ON_ERROR 容忍撕裂页,但 heapam_relation_copy_data() 这类调用方没有这种容错。Alexander Korotkov 认为要求所有调用方都处理撕裂页不现实,已准备回退补丁并计划推送与回移。

在线修改 shared_buffers 的补丁修掉两处 PANIC

Palak ChaturvediPostgreSQL hackers

不重启修改 shared_buffers 的补丁集这一轮修掉两个缺陷:收缩时 MADV_REMOVE 的范围越过 PROT_NONE 区域,在 Linux 5.10 上返回 EACCES 并直接 PANIC,改法是同时按当前分配边界和保留边界裁剪;EvictExtraBuffers 里还有竞态,缓冲区已置 BM_TAG_VALID 但 BM_VALID 未置时会被跳过,收缩后留下孤立映射。

Direct TOAST 用 TID 指针取代 OID 索引查找

Hannu KrosingPostgreSQL hackers

Hannu Krosing 提交了 Direct TOAST 的 v2 补丁,用直接 TID 指针取代基于 OID 的索引查找来定位 TOAST chunk,作者给出的数据是写入 1MB 到 1GB 的值提速 7% 到 15%,数据进了 shared buffers 之后读取与原有 TOAST 相当。Michael Paquier 提出多项异议,包括 varatt_direct 实际是 20 字节而非 18 字节。

16 条

WAIT FOR LSN 被报告存在死锁与升主竞态

Xuneng ZhouPostgreSQL hackers

Xuneng Zhou 报告了 WAIT FOR LSN 实现的四个问题。最重的是死锁:standby_replay 模式下,backend 若还持有上一条语句留下的重量级锁,可能与 startup 进程形成环路,而 WaitForLSN() 用 latch 休眠而不是 ProcSleep(),死锁检测器看不见这条依赖。另外三处是 WAL buffer 回收缺唤醒、升主后重读 LSN 的竞态和恢复非显式结束时的返回语义。

Chrome 152 修复已遭在野利用的 V8 类型混淆漏洞

GoogleChrome Releases

Chrome 9 月 3 日的稳定版包含 12 项安全修复,其中 CVE-2026-85046 是 V8 类型混淆,Google 表示已存在在野利用。目标版本为 Windows 与 macOS 的 152.0.7977.82 及 .83、Linux 的 152.0.7977.82。浏览器承载着管理后台和越来越多带浏览器工具的 agent,这类漏洞不能只靠容器或终端防护对冲。受管终端应通过 MDM 确认版本并完成重启。

Microsoft 用 64 GB 内存门槛定义本地 AI 开发机

MicrosoftWindows 开发者博客

Microsoft 把 Project Zenith 描述为面向开发者级设备的 ready-to-code Windows 体验,要求 64 GB 以上统一内存和 250 GB/s 以上内存带宽,首发由 AMD Ryzen AI Halo 提供。设备预装常用开发工具链,官方称可本地、无计量地运行 30B 以上参数的模型。它把本地推理的基线放在统一内存和带宽而不是 NPU 算力上,采购前应按目标模型的量化与并发做 PoC。

GitHub Copilot 上线 HydraFusion 多模型编排预览

GitHubGitHub 博客

HydraFusion 由运行时在 single、cascade 和 critique 三种工作流之间选择,critique 分支在无工具的只读上下文中运行,solver 保留共享 workspace 和权限感知的 agent loop,取消或校验失败时不应用补丁。它以 research preview 形式向所有 Copilot 套餐开放。GitHub 称 TerminalBench 2.1 上相对 Opus 5 成本低 67%。