PostgreSQL 合入复合类型版本校验
PostgreSQL 已合入复合类型版本校验,为记录值增加一道安全检查。过去,复合值与解析它的元组描述符不匹配时,可能引发崩溃、错误结果或被利用;新机制标记复合值并记录命名类型的版本,发现不匹配即报错。提交说明将完整防护与扩展重新编译联系起来,部分复制内核实现的扩展还需适配。运维团队应留意后续小版本的兼容性说明,特别是扩展二进制、类型变更及降级后再次升级的组合。
pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
当天收录 26 条。
PostgreSQL 已合入复合类型版本校验,为记录值增加一道安全检查。过去,复合值与解析它的元组描述符不匹配时,可能引发崩溃、错误结果或被利用;新机制标记复合值并记录命名类型的版本,发现不匹配即报错。提交说明将完整防护与扩展重新编译联系起来,部分复制内核实现的扩展还需适配。运维团队应留意后续小版本的兼容性说明,特别是扩展二进制、类型变更及降级后再次升级的组合。
PostgreSQL 已合入两项 UPSERT 安全修复。通过可更新视图执行冲突处理时,旧逻辑可能绕过视图的筛选条件,读取或修改本应隐藏的冲突行;新逻辑先验证该行是否对视图可见,不符合条件就报错。另一项配套修复将行级安全策略检查提前到用户编写的冲突处理条件之前,封住借条件表达式探读隐藏数据的路径。依赖旧行为的应用需要回归测试;这些是已提交的修复,正式升级仍应以相应版本发布说明为准。
Richard Yen 复盘一宗 PostgreSQL 迁移后的查询退化:同样返回 200 行,两个环境分别访问 101 个和 5 个堆页,差异来自并行装载后的物理布局。B-tree 有序并不代表表中相关行相邻,重建索引或 VACUUM FULL 也不会按查询键重排行。排查时可用 ctid 统计目标行分布,再结合缓冲区与 I/O 计时判断;按键重排前需评估锁和额外空间,完成后更新统计信息,并在相同缓存条件下复测。
开源 PostgreSQL 监控工具 Dasha 的 1.10 系列加入 Patroni 集群发现,1.10.3 进一步提供实时活动与等待分析。它以只读方式读取 etcd 或 Consul,并从各主机采样会话,按等待类型和查询标识汇总,帮助定位锁等待与活跃语句。采样间隔可设为 1–10 秒,每个实例对同一主机最多每秒读取一次,不因观看人数增加而重复采样。该分析无需额外扩展,但查询分组仍须满足查询标识与监控权限要求。
Percona 以 PostgreSQL 16 升至 17 的案例梳理 Operator 大版本升级:专用资源触发停库,升级任务在主库卷上执行链接模式的 pg_upgrade,再重建副本并启动新版本。难点还包括底层镜像变化;案例从 UBI 8 切到 UBI 9,glibc 版本随之变化,必须核对排序规则并重建受影响索引,再刷新版本元数据。扩展升级状态、逻辑副本重建和应用回归也要逐项确认,不能把镜像替换视为升级完成。
ClickHouse 宣布托管 Postgres 在 AWS 正式可用,GCP 仍处于私有预览。服务使用本地 NVMe 存储,提供跨可用区备库、自动故障转移、时间点恢复、连接池及只读副本,并与分析数据库对接。正式可用也意味着测试期折扣结束,备份存储和公网出站流量开始计费。公司同时宣布收购 Xata,计划整合即时分支、克隆及缩容至零;这些整合能力属于后续路线,现有用户应分别评估当前功能和成本变化。
已提交的修复避免把备份清单片段解释为格式字符串,数据目录内的异常文件名可能触发旧路径。
已合入的修复对齐对象转移所需的角色切换能力,并补上数据库转移时遗漏的建库权限校验。
新增视图及跨查询块的目标定位方式,便于把优化提示施加到更准确的执行层次。
以可缓存的数据集固定基线,再逐项启用持久化、日志等机制,比较不同硬件上的额外成本。
案例用 RedisShake 迁移约 5300 万个键,并说明自定义 DNS 切换时如何保留服务端 TLS 身份校验。
启用后,查询使用数据写入托管的只读 Iceberg 表,可用 SQL 跨工作组分析用量、成本与审计线索。
EKS Pod 和 ECS 任务可各自运行在轻量虚拟机内,并通过加密证明校验工作负载完整性。
工作负载可用本分区身份换取另一分区角色的临时凭据,减少跨分区运维对长期访问密钥的依赖。