跳过正文
Pigsty v3.7:PG万磁王,PG18深度支持
  1. Pigsty 数据库发行版/

Pigsty v3.7:PG万磁王,PG18深度支持

·2764 字·6 分钟· ·
冯若航
作者
冯若航
Pigsty 创始人, @Vonng
目录
Pigsty - 这篇文章属于一个选集。
§ : 本文

GitHub Release | 发布注记 | 微信公众号

Pigsty v3.7.0 正式发布,带来完整的 PostgreSQL 18 生产级支持,以及四个新操作系统的支持:Debian 13 与 EL 10 在 x86_64/ARM64 架构上的全部组合。扩展插件数量从 423 个增至 437 个,大量扩展同步更新至最新版本。

此外,Supabase、IvorySQL、PolarDB、Percona TDE 等内核均升级至最新版本,Prometheus、Grafana、DuckDB、Etcd 等基础组件也完成了一轮集中更新。

凭借在 PostgreSQL 扩展生态的突出贡献,Pigsty 在第八届 PostgreSQL 数据库生态大会上荣获 “PostgreSQL 万磁王” 奖。


PostgreSQL 18 成为默认版本
#

随着 PostgreSQL 18.1 的发布,PG 18 已具备生产就绪状态。Pigsty v3.7 正式将其设为默认版本。

PG 18 引入了多项重要特性:时态主键(Temporal Primary Key)、内置 UUIDv7、索引跳跃扫描(Index Skip Scan)、异步 I/O(AIO)、虚拟生成列、EXPLAIN 增强、OAuth 2.0 支持等。如果这些特性符合你的业务需求,现在是升级的好时机。

与此同时,11 月发布的 PG 13.23 将是 PG 13 的最后一个版本,该大版本正式进入 EOL 状态。Pigsty v3.7 是最后一个包含 PG 13 完整扩展支持的版本 —— 所有扩展均已重新编译,但后续将不再更新。


史诗级扩展更新
#

支持 PG 18 远不止内核部署那么简单。从 beta 阶段开始,Pigsty 就提供了 PG 18 的部署能力,但要将其作为生产默认版本,扩展生态的跟进至关重要。目前除 Citus 外,主流扩展均已支持 PG 18。为此,我们修复了数十个扩展的兼容性问题,并统一了 40 余个 Rust 扩展的 pgrx 版本。

这是一次史诗级的更新。PG 18 上的可用扩展数量达到 390-405 个(因发行版略有差异)。完整的扩展可用性信息可在 PGEXT.CLOUD 查阅。近三个月的扩展更新情况如下:

多个扩展迎来里程碑式更新:

  • pg_duckdb 1.1:代码质量显著改善,EL8 兼容性问题已修复
  • pg_mooncake 0.2:使用 Rust 重写,现为 pg_duckdb 的子扩展,两者可并存
  • VectorChord 1.0:正式发布稳定版
  • pg_search 0.20:ParadeDB 全文检索扩展重大更新

支持 PG 18、Debian 13、EL 10 意味着编译测试矩阵从 50 个(5 PG × 10 OS)扩展到 84 个(6 PG × 14 OS),增幅达 68%。仓库中的 RPM/DEB 包数量从四万余个增至六万余个。

为提升效率,我们将整个扩展构建流程完全自动化。现在只需启动容器,执行 pig build pkg <ext> 即可完成构建。这套扩展仓库与构建基础设施完全独立可用 —— 即使不使用 Pigsty,也可通过 YUM/APT 直接安装扩展,所有代码采用 Apache-2.0 许可证开源。

凭借这一贡献,Pigsty 在第八届 PostgreSQL 数据库生态大会上荣获"PostgreSQL 万磁王"奖。


新增操作系统支持:EL 10 与 Debian 13
#

本版本新增四个操作系统支持,主线支持总数达到 14 个。

适配过程中的主要挑战:

  • EL 10 Ansible 缺失:官方仓库缺少 ansible-collection-community-crypto,我们将 EL9 版本移植并打包
  • Ansible 2.19 破坏性变更:大量语法不兼容,进行了全面适配确保新老版本均可正常工作
  • LLVM 版本升级:EL9/EL10 上 PGDG 仓库从 LLVM 19 升级至 LLVM 20,引入兼容性问题
  • ARM64 仓库调整:el10.aarch64 的 PGDG 仓库经历多轮调整
  • 依赖变动频繁:上游包依赖关系持续变化

这也是我们不建议用户自行折腾 PostgreSQL 部署的原因之一:很多时候问题并非操作失误,而是上游变更导致的依赖断裂。使用 Pigsty 离线安装包可以锁定特定时刻的完整依赖,确保部署的稳定性。

维护策略调整:Pigsty 将仅维护各系列最近两个大版本。随着 EL 10 与 Debian 13 的加入,EL 8、Debian 11、Ubuntu 20.04 将不再主动更新(支持不移除),新扩展包与测试流程不再覆盖这些老系统。


多内核同步更新
#

除原生 PostgreSQL 内核外,本版本同步更新了多个衍生内核:

内核更新内容
Supabase全部 Docker 镜像更新至最新,底层升级至 PG 18
IvorySQL从 4.5 升级至 5.0,兼容 PG 18.0
Percona TDE透明加密内核从 PG 17.5 兼容升级至 PG 18.1 兼容
PolarDB发布 15.15.5.0,新增 Debian 13/EL 10 的 RPM/DEB 包
FerretDB更新至 2.7,底层 DocumentDB 升级至 0.107
OpenHalo / OrioleDB新增 Debian 13 与 EL 10 支持

这些内核均可在新操作系统上平滑使用(Babelfish 除外),进一步巩固了 Pigsty 作为"元发行版"(Meta-Distribution)的定位 —— 一个可以开箱即用体验各种 PostgreSQL 风味的统一平台。


参数模板优化
#

针对 PG 18 与新场景优化了默认参数模板:

  • 优化 CPU、进程、线程与并行查询相关参数配置
  • 确保各类扩展拥有充足的 background worker 资源
  • 放宽 OLTP 模板对并行查询的限制
  • 新增维护保养、故障排查、误删恢复等 SOP 文档

愿景:PostgreSQL 生态的 Ubuntu
#

Pigsty 已成为 PostgreSQL 生态中国开源项目中 Star 数最高的项目,在国际上也建立了一定的知名度与影响力。

我们的愿景是:将 Pigsty 打造为 PostgreSQL 世界的主流发行版,在数据库领域占据类似 Debian、Ubuntu、RHEL 在操作系统领域的生态位。

实现路径:

  • 聚焦核心场景:原生 Linux 上的大规模生产级 PostgreSQL 管理
  • 构建差异化优势:业界领先的监控系统与最完整的扩展生态
  • 整合生态资源:融合 Supabase、Percona 等发行版的核心能力
  • 优化开发者体验:在保证专业性的同时兼顾易用性


v3.7.0
#

Pigsty v3.7.0 版本发布,PostgreSQL 18 深度支持!

curl https://repo.pigsty.cc/get | bash -s v3.7.0

亮点特性
#

  • PostgreSQL 18 深度支持,成为默认 PG 大版本,扩展已就位!
  • 新增 EL10 / Debian 13 操作系统支持,总数达 14 个!
  • 新增 PostgresQL 扩展数量,总数达到 437 个!
  • 支持了 Ansible 2.19 破坏性重构以后的版本!
  • Supabase,PolarDB, IvorySQL, Percona 内核更新至最新版本!
  • 优化了 PG 默认参数的设置逻辑,更充分利用资源。

版本更新
#

  • PostgreSQL 18.1, 17.7, 16.11, 15.15, 14.20, 13.23
  • Patroni 4.1.0
  • Pgbouncer 1.25.0
  • pg_exporter 1.0.3
  • pgbackrest 2.57.0
  • Supabase 2025-11
  • PolarDB 15.15.5.0
  • FerretDB 2.7.0
  • DuckDB 1.4.2
  • Etcd 3.6.6
  • pig 0.7.4

更多软件版本更新信息,请参考:

API 变化
#

  • 为并行执行的相关参数设置了更合理的优化策略
  • richfull 模板中,不再默认安装 citus 扩展,因为 citus 尚未支持 PG 18
  • PG 参数模板中,新增 duckdb 系列扩展存根
  • min_wal_size, max_wal_size, max_slot_wal_keep_size 设置 200,2000,3000 GB 的封顶上限值
  • temp_file_limit 设置 200 GB 的封顶上限,OLAP 设置为 2 TB
  • 适当增大连接池默认链接数量
  • 新增 prometheus_port 参数,且默认值为 9058,避开与 EL10 RHEL Web Console 端口的冲突
  • 修改 alertmanager_port 参数的默认值为 9059,避开与 Kafka SSL 端口的潜在冲突
  • 新增 pg_pkgpg_pre 子任务,在安装 PG 包前移除 el9+ 上导致 LLVM 冲突的 bpftool, python3-perf
  • 在 Debian / Ubuntu 的默认仓库定义中新增 llvm 仓库模块
  • 修复了 infra-rm.yml 移除软件包的逻辑

兼容性修复
#

  • 修复了 Ubuntu/Debian 信任 CA 时 Warning 返回码错误的问题
  • 修复了 Ansible 2.19 引入的大量兼容性问题,确保在新老版本上正常运行
  • 为 seq 类变量添加了 int 类型转换,确保兼容
  • 将大量 with_items 修改为 loop 语法,确保兼容
  • 为密钥交换变量添加一层列表嵌套,避免在新版本下针对字符串进行字符迭代
  • 将 range 用例显式转换为 list 后使用
  • 修改了 name,port 等标记保留的变量命名
  • play_hosts 修改为 ansible_play_hosts
  • 为部分字符串类型添加了 string 强制类型转换,避免运行时错误

EL10 逻辑适配
#

  • 修复了 EL10 缺少 ansible-collection-community-crypto 无法生成密钥的问题
  • 修复了 EL10 缺少 ansible 逻辑包的问题
  • 移除 modulemd_tools flamegraph timescaledb-tool
  • 使用 java-21-openjdk 替代 java-17-openjdk
  • aarch64 YUM 仓库名称问题

Debian 13 逻辑适配
#

  • 使用 bind9-dnsutils 替代 dnsutils

Ubuntu 24 修复
#

  • 临时移除了上游依赖崩溃的 tcpdump 包

校验和
#

e00d0c2ac45e9eff1cc77927f9cd09df  pigsty-v3.7.0.tgz
987529769d85a3a01776caefefa93ecb  pigsty-pkg-v3.7.0.d12.aarch64.tgz
2d8272493784ae35abeac84568950623  pigsty-pkg-v3.7.0.d12.x86_64.tgz
090cc2531dcc25db3302f35cb3076dfa  pigsty-pkg-v3.7.0.d13.x86_64.tgz
ddc54a9c4a585da323c60736b8560f55  pigsty-pkg-v3.7.0.el10.aarch64.tgz
d376e75c490e8f326ea0f0fbb4a8fd9b  pigsty-pkg-v3.7.0.el10.x86_64.tgz
8c2deeba1e1d09ef3d46d77a99494e71  pigsty-pkg-v3.7.0.el8.aarch64.tgz
9795e059bd884b9d1b2208011abe43cd  pigsty-pkg-v3.7.0.el8.x86_64.tgz
08b860155d6764ae817ed25f2fcf9e5b  pigsty-pkg-v3.7.0.el9.aarch64.tgz
1ac430768e488a449d350ce245975baa  pigsty-pkg-v3.7.0.el9.x86_64.tgz
e033aaf23690755848db255904ab3bcd  pigsty-pkg-v3.7.0.u22.aarch64.tgz
cc022ea89181d89d271a9aaabca04165  pigsty-pkg-v3.7.0.u22.x86_64.tgz
0e978598796db3ce96caebd76c76e960  pigsty-pkg-v3.7.0.u24.aarch64.tgz
48223898ace8812cc4ea79cf3178476a  pigsty-pkg-v3.7.0.u24.x86_64.tgz

更多版本信息请参考 GitHub 发布页面

Pigsty - 这篇文章属于一个选集。
§ : 本文

相关文章