Pigsty v4.5 发布:575 个扩展,新增 Kafka、MySQL、Valkey 与 Silo
Pigsty v4.5.0 是一个横跨数据服务、PostgreSQL 生态、自动化安全与软件供应链的功能版本。它新增了 Kafka KRaft 和 MySQL 8.4 两个试点模块,为 REDIS 增加了 Valkey 引擎,将 MINIO 模块收敛到 Silo,打包的 PostgreSQL 扩展目录也从 531 个增长到 575 个。
本文是 v4.4.0(2026-07-10)到 v4.5.0(dab5dba3,2026-08-14)的全量解读,共包含 100 次提交、416 个文件变更、42058 行新增、15984 行删除。完整源码 diff 见 v4.4.0...v4.5.0。结构化变更中有相当一部分来自将整套 Grafana 面板重新导出为 Dashboard API v2。
版本亮点
- 575 个 PostgreSQL 扩展:新增 46 个、移除 2 个,净增 44 个。大量 Rust 扩展迁移至 pgrx 0.19.1,RPM/DEB 覆盖同步更新,并补充了包名映射。
- Kafka KRaft 模块:原生 Kafka 编排,支持多集群、动态加入与退出、SCRAM-SHA-512/TLS、凭证轮换、健康门禁、监控告警,并附带四套 Grafana 面板。
- MySQL 8.4 模块:支持单机和三节点 InnoDB Cluster(搭配 MySQL Router)、XtraBackup、账号与数据库开通、参数保护、监控告警,以及保守的摘除流程。
- Valkey 与 Silo:REDIS 新增
redis_type: valkey;MINIO 只接受minio_type: silo。本周期开发的 RustFS 后端在正式基线发布前被撤回。 - 更安全的集群编排:PGSQL、REDIS、MINIO、KAFKA、MYSQL 均改为按显式集群身份选择成员。etcd 委托、DBSU 密钥交换、PITR、备份标记与摘除流程也都做了收紧。
- 可观测性升级:新增 Kafka 和 MySQL 面板、MinIO/Silo Metrics V3,以及
pg_exporter1.4 系列配置,覆盖 PG19、事务年龄、锁、复制和清理压力等指标。 - 软件仓库与供应链升级:SOW 现在能够原子化地生成本地软件仓库,彻底摒弃了伪造的 ModuleMD 包。离线发行版(bundle)支持携带带版本号的源码归档。基础设施重打包流程统一采用 SHA-256 校验哈希、SPDX 许可证标识以及
1PGSTY版本后缀,确保标准一致。 - 51 个独立配置模板:新增
demo/kafka、demo/mysql以及基于 8 节点模拟的ha/octo配置,同时更新ha/trio模板,采用精简的三节点 Silo 高可用拓扑。
Kafka KRaft 试点模块
新增的 Kafka 模块以节点状态为权威数据源,通过动态 KRaft 模式管理 Broker 和 Controller。该模块允许在同一份清单中定义多个 Kafka 集群,并支持对 kafka.yml 执行无限次数的变更。若通过 --limit 参数选择的主机集合不完整,系统将拒绝执行,以防止因部分更新导致仲裁组(quorum)状态不一致。
- 节点负责持久化权威清单和密钥信息,支持动态加入 Controller、准入新增 Broker、退休现有成员,以及执行三阶段的故障成员替换流程。
- 支持 SCRAM-SHA-512 认证、TLS 加密、证书轮换和凭据轮换,并自动执行分区健康检查及协议自测。
kafka-rm.yml强制执行非空的-l/--limit参数。在停止服务之前,会校验绝对数据路径、目标身份标识以及部分退休场景下存活的锚点节点,确保操作安全。- 集成 JMX Exporter、Kafka Exporter、Victoria 监控采集与告警规则,并预置 Overview(概览)、Instance(实例)、Topic(主题)和 Consumer(消费者)四类 Grafana 仪表盘。
Kafka 模块目前仍处于试点阶段。客户端必须能够直接解析并连接到每一台 Broker。切勿将 Kafka 的数据平面置于 HAProxy、VIP(虚拟 IP)或传统 L4 负载均衡器之后。
MySQL 8.4 试点模块
新增的 MySQL 模块专门针对固定的 MySQL 8.4 LTS(长期支持)平台版本。支持单机实例或三节点 InnoDB Cluster 部署,内置 MySQL Shell、MySQL Router、TLS 支持、用户/数据库配置、基于 XtraBackup 的定期全量备份以及统一监控能力。
- 初始化阶段严格校验节点数量必须为 1 或 3,自动创建集群并协调 Router,同时具备幂等性,能够妥善管理已有成员及部分完成状态的场景。
mysql_parameters会对复制、TLS 和平台保留设置进行保护;使用loose_、skip_、disable_和enable_前缀无法绕过这些护栏限制。mysql_databases仅接受name、encoding和collate参数;创建数据库时会附加DEFAULT ENCRYPTION='N'选项。- 移除操作会在隔离、关闭和清理前验证目标主机、法定人数和成员状态。与其他模块不同,若选定主机没有 MySQL 身份,
mysql-rm.yml会采用失败关闭(fail closed)策略。 - 新增了 Overview、Cluster、Instance、Replication 和 Alert 等 Grafana 仪表盘,并添加了 mysqld_exporter 告警规则。
- 启动时会检查 systemd 的 Invocation ID、
ActiveState=active状态以及 Silo 集群健康度,最长等待约 600 秒,以避免将旧的进程状态误判为重启成功。 - 对象存储成员按
minio_cluster分组,独立于库存组名。在多集群库存中,应使用不同的minio_alias、minio_domain和minio_endpoint值。 ha/trio从单节点对象存储改为三个 EC:1 的单盘 Silo 成员,通过 VIP 和 HAProxy 暴露在 9002 端口。模板中显式声明了全部三个默认用户,确保configure -g生成的 S3 凭据一致。- 分布式 Silo 要求
/data/minio是独立的文件系统;Silo 会拒绝根文件系统上的普通目录。 - 开发过程中曾加入 RustFS 后端,但最终已从源码中完全移除。Infra 仓库中可能仍保留 RustFS 或 MinIO 软件包,但两者都不是 v4.5 支持的 MINIO 后端。
Valkey、Silo 与 Mongo 模式
Redis / Valkey
REDIS 模块默认仍使用 Redis 引擎,可通过设置 redis_type: valkey 明确选择 Valkey。Valkey 使用 valkey-server 和 valkey-cli 软件包,但为了兼容现有的库存(inventory)和仪表盘,配置文件路径、监控任务、服务接口和模块参数仍保留 redis 相关命名。
Redis/Valkey 的 systemd 单元现在使用 Type=notify,并设置 1,800 秒的启动超时。此外,还增强了拓扑验证、主从副本关系、密码处理、基于标签范围的移除操作以及重建保护机制。
MINIO / Silo
MINIO 仍作为兼容性模块名称保留,但 v4.5 版本的角色仅部署 Silo;silo 是 minio_type 唯一合法的值。Silo 保留了 S3/Admin API、/minio/* 路由、MINIO_* 环境变量以及现有的磁盘格式,但软件包、二进制文件和 systemd 服务现在统一命名为 silo。
PostgreSQL Mongo 模式
独立的 FERRET 角色和 mongo.yml 剧本已移除,其功能拆分为 PostgreSQL Mongo 模式 和 FerretDB Docker APP 两部分:由 PostgreSQL/DocumentDB 提供数据层,由 Docker Compose 中的 FerretDB 提供 MongoDB 协议层。Pigsty 不再附带旧的 FerretDB systemd 服务、专用抓取配置以及 Mongo 监控面板。
编排、安全与生命周期
deploy.yml、slim.yml以及 PGSQL、REDIS、MINIO、KAFKA、MYSQL 的初始化剧本,现在会根据各自的*_cluster身份跳过无关主机。PGSQL、REDIS、MINIO、KAFKA 的卸载剧本同样遵循这一规则。- 只有当存在规范的、非空的
etcd分组时,PGSQL 的配置、PITR 和卸载操作才会进行委托。DBSU SSH 密钥会在实际的pg_cluster_members之间交换,包括 Citus 等跨分组拓扑。 - PITR 和卸载只删除以
/<cluster>/为边界的 etcd 子树,避免某个集群名恰好是另一个集群名前缀时被误删。首次 pgBackRest 备份只有在命令成功执行后才写入initial.done。 - 卸载流程会先停止服务再清理数据。Kafka、MySQL 和对象存储还增加了目录、法定人数、存活成员和集群身份检查。
- 完整运行
pgsql.yml现在被明确定义为仅用于初始化:它会重启 Patroni/PostgreSQL 并重新应用托管配置和引导 SQL,因此对已初始化的集群来说,它不是日常的收敛命令。 - 由 Pigsty 生成的 systemd 单元位于
/etc/systemd/system目录下;针对敏感配置、环境变量文件、密钥及特权脚本,权限已进一步收紧。Debian/Ubuntu 软件包安装过程中,会抑制 Silo、Redis/Valkey 及旧版日志服务的过早启动。 - HAProxy 采用固定的
/etc/haproxy/haproxy.cfg与/etc/haproxy/conf.d目录结构,配合上游的 master-worker 模式、主套接字以及Type=notify。dnsmasq 则使用动态绑定,在本地应答私有 PTR 记录,并处理那些仅在 INFRA 初始化后才出现的节点地址。 - Debian/Ubuntu 的时间同步会写入原生的
/etc/chrony/chrony.conf,而 EL 系系统继续使用/etc/chrony.conf。在初次同步期间,若时间偏移超过 10 秒,可能会在前 120 次更新中直接进行步进调整。
PostgreSQL 内核与扩展
- 通过软件仓库,PostgreSQL 默认版本升级为 18.6。四个标准 Patroni 模板新增了
output_plugin_libraries白名单,以支持pgoutput、test_decoding和wal2json;Patroni 会在较旧版本上自动过滤不支持的配置项。 - PostgreSQL 19 测试版模板引入了 pgBackRest 2.59 及计划任务备份支持。该模板默认仍不安装任何扩展,依旧保持 PG19 试验模板的定位。
- Percona PostgreSQL 18 的 TDE(透明数据加密)采用集群模式,并保留 Pigsty 专用的安装前缀,以避免与原生 PostgreSQL 发生冲突。
- IvorySQL 在标准工作负载模板中支持了默认数据库初始化及兼容的 WAL 压缩功能。
- PostgreSQL 事实加载器、各平台的
package_map以及默认扩展组已同步更新,修复了 PGDG/YUM 包名及缺失包的问题。
对比 Pig v1.5.1(531 条)与 v1.7.0(575 条)中内置的扩展目录快照,本周期新增 46 个扩展,移除 2 个,净增 44 个:
- 新增 32 个主要扩展:
argm、cat_tools、cron_utils、fbsql、oidc_validator、online_advisor、pg_cjk_parser、pg_column_tetris、pg_describe、pg_disorder、pg_fts、pg_jieba、pg_kpart、pg_lake、pg_local_cache、pg_mentat、pg_oidc_validator、pg_policy、pg_roast、pg_tiktoken_c、pg_turbovec、pg_vault_tde、pgcontext、pgfr_record、pgmemento、pgmonitor、pgsqlmock、pgwasm、plruby、plx、postbis以及qdgc。 - 新增 13 个子扩展:
hstore_plruby、jsonb_plruby、ltree_plruby、pg_extension_base、pg_extension_updater、pg_lake_copy、pg_lake_engine、pg_lake_iceberg、pg_lake_table、pg_map、pgcontext_pgvector、pgfr_analyze以及qdgc_postgis。 - 新增 1 个 PGDG 扩展:
pg_statviz。它保留在线目录中,但不属于默认安装组。 - 移除
pg_analytics和spat:前者已归档,后者为已废弃的 Alpha 项目。
此外,由于上游未提供可分发的许可证,emailaddr、explain_ui、基于 Rust 的 oidc_validator、pg_summarize 和 smlar 已移出默认安装组;其软件包和目录记录可能仍保留。由于 pg_relation_sql 是独立 SQL 工具包,不支持 CREATE EXTENSION,因此它出现在打包表中,但不计入 575 个扩展之内。
扩展包更新矩阵
该表格将 v4.4.0 之后的 RPM 和 DEB 批次合并为每个扩展的一条“旧版本 → 最终版本”记录,共包含 207 个打包条目和两个目录移除项。当 RPM 和 DEB 存在差异时,两者均会展示。即使版本号未变,也可能代表重建、包命名变更、许可证元数据更新或平台覆盖范围调整。
7 月 10 日之后的第一份打包日志覆盖了 7 月 7 日至 24 日的内容,且没有逐条标注日期,因此整批内容都收录进来,以免遗漏发布后的 pgrx 0.19.1 重新构建和矩阵修复。最终的仓库索引仍是版本与平台可用性的权威依据。
| 扩展 | 之前版本 | 最终版本 | 备注 |
|---|---|---|---|
age | RPM: 1.7.0 | RPM: 1.8.0 | 仅 RPM;PG18 为 1.8.0-rc0,PG17 为 1.7.0 |
anon | 3.1.1 | 3.1.3 | pgrx 0.19.1 |
argm | - | 1.1.1 | |
asn1oid | RPM: 1.6 | RPM: 1.6 | 仅 RPM;许可证元数据改为 GPL-3.0-or-later |
babelfishpg_money | 1.1.0 | 1.1.0 | 新增 PG18 支持 |
babelfishpg_tds | 1.0.0 | 1.0.0 | 新增 PG18 支持 |
babelfishpg_tsql | 5.5.0 | 5.4.0 | 目录版本修正为 5.4.0;PG17–18 |
biscuit | 2.4.1 | 3.0.0 | PG16–18;从 2.x 升级后需要执行 REINDEX |
block_copy_command | 0.1.5 | 0.1.5 | pgrx 0.19.1 |
cat_tools | - | 0.3.0 | 纯 SQL 扩展 |
citus | 14.1.0 | 14.2.0 | PG16–18;包含 citus_columnar;补齐 EL10/PG14 的 RPM 覆盖 |
convert | 0.1.0 | 0.1.0 | pgrx 0.19.1 |
cron_utils | - | 0.1.0 | 纯 SQL 扩展 |
dbt2 | 0.61.7 | 0.61.7 | 新增 DEB PG14–18 与 EL8 RPM PG17–18 |
decoder_raw | 1.0 | 1.0 | 新增 EL10/Debian 13;PG14–16 |
decoderbufs | 3.5.0 | RPM: 3.5.0DEB: 3.6.0 |
RPM 保持 3.5.0 不变;DEB 更新至 3.6.0 |
documentdb | 0.113 | 0.114 | 支持 PG15–18;扩展至 16 个平台 |
documentdb_core | 0.113 | 0.114 | 支持 PG15–18;扩展至 16 个平台 |
documentdb_distributed | 0.113 | 0.114 | 支持 PG15–18;扩展至 16 个平台 |
documentdb_extended_rum | 0.113 | 0.114 | 支持 PG15–18;扩展至 16 个平台 |
emailaddr | 0 | 0 | 因上游未提供许可证,已从默认组中移除 |
emaj | RPM: -DEB: 4.7.1 | 5.0.0 | RPM 包重命名为 e-maj,并通过 Provides/Obsoletes 兼容旧版 emaj 名称 |
etcd_fdw | 0.0.1 | 0.0.1 | 基于 pgrx 0.19.1 构建 |
explain_ui | 0.0.2 | 0.0.2 | 使用 pgrx 0.19.1 重新构建;因上游未提供许可证,已从默认组中移除 |
faker | 0.5.3 | 0.5.3 | 完善 RPM/DEB 覆盖范围;Debian 12 和 Ubuntu 22.04 使用 python3-fake-factory 22.0.0 |
fbsql | - | 0.1.0 | 支持 PG16–18;依赖 PL/R |
gb18030_2022 | 1.0 | 1.0 | IvorySQL 5.4;仅限 PG18 |
graph | 0.1.7 | 1.0.0 | pggraph;基于 pgrx 0.19.1 |
h3 | 4.2.3 | 4.2.3 | 新增 EL8 x86_64 / PG17–18 RPM 支持 |
hdfs_fdw | 2.3.3 | 2.3.3 | 新增 DEB PG14–18 支持 |
hstore_pllua | 2.0.12 | 2.0.12 | 新增六个 EL RPM 构建目标 |
hstore_plluau | 2.0.12 | 2.0.12 | 新增六个 EL RPM 构建目标 |
http | 1.7.1 | 1.7.2 | |
hunspell_cs_cz |
1.0 | 1.0 | 整合 hunspell 包;包含 10 个词典 |
hunspell_de_de | 1.0 | 1.0 | 整合 hunspell 包;包含 10 个词典 |
hunspell_en_us | 1.0 | 1.0 | 整合 hunspell 包;包含 10 个词典 |
hunspell_fr | 1.0 | 1.0 | 整合 hunspell 包;包含 10 个词典 |
hunspell_ne_np | 1.0 | 1.0 | 整合 hunspell 包;包含 10 个词典 |
hunspell_nl_nl | 1.0 | 1.0 | 整合 hunspell 包;包含 10 个词典 |
hunspell_nn_no | 1.0 | 1.0 | 整合 hunspell 包;包含 10 个词典 |
hunspell_pt_pt | 1.0 | 1.0 | 完成 16 个平台覆盖;pt_pt.stop 避免内核冲突 |
hunspell_ru_ru | 1.0 | 1.0 | 整合 hunspell 包;包含 10 个词典 |
hunspell_ru_ru_aot | 1.0 | 1.0 | 整合 hunspell 包;包含 10 个词典 |
imgsmlr | 1.0 | 1.0 | 新增 EL10/Debian 13 支持 |
ivorysql_ora | 1.0 | 1.0 | IvorySQL 5.4;仅限 PG18 |
jdbc_fdw | 0.4.0 | 0.5.0 | 打包 0.5.0,SQL 版本 1.2 |
jsonschema | 0.1.9 | 0.1.9 | pgrx 0.19.1 |
mobilitydb | 1.3.0 | 1.3.0 | 新增六个 EL RPM 目标及 Ubuntu 22.04 / PG18 DEB 包 |
mobilitydb_datagen | 1.3.0 | 1.3.0 | 与 mobilitydb 协同完成 RPM/DEB 覆盖 |
nominatim_fdw | 1.3 | 2.1.0 | |
numeral | RPM: 1.3 | RPM: 1.3 |
仅提供 RPM 包;已更名为 postgresql-numeral;许可证元数据改为 GPL-2.0-or-later |
odbc_fdw | 0.5.1 | 0.6.1 | 软件包 0.6.1,SQL 版本 0.5.2 |
ogr_fdw | 1.1.8 | 1.1.9 | |
oidc_validator | - | 0.1.0 | 仅支持 PG18;因上游未提供许可证,已从默认组移除 |
omni | 0.2.14 | 0.2.14 | EL10 支持 PG14–18;其余现有目标仅支持 PG18 |
online_advisor | - | 1.0 | |
ora_btree_gin | 1.0 | 1.0 | IvorySQL 5.4;仅支持 PG18 |
ora_btree_gist | 1.0 | 1.0 | IvorySQL 5.4;仅支持 PG18 |
pg_ai_query | RPM: 0.1.1 | RPM: 0.1.1 | 仅提供 EL9/10 的 RPM 包;需要 GCC 13 / OpenSSL 3 |
pg_analytics | 0.3.7 | - | 上游已归档;已从打包扩展目录中移除 |
pg_base58 | 0.0.1 | 0.0.1 | pgrx 0.19.1 |
pg_bestmatch | 0.0.2 | 0.0.2 | pgrx 0.19.1 |
pg_cardano | 1.2.0 | 1.2.0 | pgrx 0.19.1;支持 PG15–18 |
pg_cjk_parser | - | 0.1.0 | |
pg_clickhouse | 0.3.2 | 0.10.0 | |
pg_column_tetris | - | 0.1.0 | 纯 SQL 实现 |
pg_command_fw | 0.1.0 | 0.1.0 | pgrx 0.19.1;支持 PG15–18 |
pg_csv | RPM: 1.0.1 | RPM: 1.0.2 | 新增 RPM 包;软件包 1.0.2,SQL 版本 1.0.1 |
pg_dbms_errlog | 2.2 | 2.4 | |
pg_dbms_job | 2.0 | 2.0 |
新增 DEB 安装包 |
pg_dbms_lock | 2.0 | 2.0 | 新增 DEB 安装包 |
pg_dbms_metadata | 1.0.0 | 1.0.0 | 新增 DEB 安装包及 EL8 aarch64 / PG15 RPM 包 |
pg_describe | - | 1.0.0 | 支持 PG17–18 |
pg_disorder | - | 0.1.0 | |
pg_durable | 0.2.2 | 0.2.3 | 升级 pgrx 0.19.1 |
pg_enigma | 0.5.0 | 0.5.0 | 升级 pgrx 0.19.1 |
pg_eviltransform | 0.0.2 | 0.0.4 | 升级 pgrx 0.19.1 |
pg_extension_base | - | 3.4 | pg_lake 3.4 子扩展;支持 PG16–18;RPM 仅限 EL9/10 |
pg_extension_updater | - | 3.4 | pg_lake 3.4 子扩展;支持 PG16–18;RPM 仅限 EL9/10 |
pg_fact_loader | 2.0.1 | 2.0.1 | Ubuntu 26 DEB |
pg_failover_slots | 1.2.1 | 1.2.1 | 需预先加载;许可证元数据改为 PostgreSQL |
pg_fts | - | 0.2.0 | 支持 PG17–18 |
pg_geohash | 1.0 | 1.0 | 修正 SQL 文件名及目标 PostgreSQL ABI;许可证元数据改为 MIT |
pg_get_functiondef | 1.0 | 1.0 | IvorySQL 5.4;仅支持 PG18 |
pg_graphql | 1.6.1 | 1.6.1 | 升级 pgrx 0.19.1 |
pg_idkit | 0.4.0 | 0.4.0 | 升级 pgrx 0.19.1 |
pg_ivm | 1.14 | 1.15 | |
pg_jieba | - | 1.1.0 | 安装包 2.0.1,SQL 版本 1.1.0 |
pg_jsonschema | 0.3.4 | 0.3.4 | 升级 pgrx 0.19.1 |
pg_kazsearch | 2.2.0
| 2.3.0 | pgrx 0.19.1;PG16–18 |
pg_kpart | - | 1.0 | |
pg_lake | - | 3.4 | PG16–18;RPM 仅支持 EL9/10 |
pg_lake_copy | - | 3.4 | pg_lake 3.4 子扩展;PG16–18;RPM 仅支持 EL9/10 |
pg_lake_engine | - | 3.4 | pg_lake 3.4 子扩展;PG16–18;RPM 仅支持 EL9/10 |
pg_lake_iceberg | - | 3.4 | pg_lake 3.4 子扩展;PG16–18;RPM 仅支持 EL9/10 |
pg_lake_table | - | 3.4 | pg_lake 3.4 子扩展;PG16–18;RPM 仅支持 EL9/10 |
pg_later | 0.4.0 | 0.4.0 | pgrx 0.19.1 |
pg_local_cache | - | 1.3.0 | 需要预加载;仅支持单主架构 |
pg_map | - | 3.4 | pg_lake 3.4 子扩展;PG16–18;RPM 仅支持 EL9/10 |
pg_mentat | - | 1.5.7 | |
pg_mooncake | 0.2.0 | 0.2.0 | pgrx 0.19.1 |
pg_net | 0.20.3 | EL8/9、U22:0.9.2其他: 0.20.5 | EL8/9 和 Ubuntu 22.04 仍停留在 0.9.2;其他平台使用 0.20.5 |
pg_oidc_validator | - | 1.1.0 | 仅支持 PG18;新增 discovery_url_override;RPM 仅支持 EL10 |
pg_parquet | 0.5.1 | 0.5.1 | pgrx 0.19.1 |
pg_partman | RPM:5.4.0DEB: 5.4.2 | 5.5.0 | DEB 包名为 postgresql-PGVERSION-partman |
pg_pinyin | 0.0.4 | 0.0.5 | pgrx 0.19.1 |
pg_policy | - | 0.1.0 | 纯 SQL 实现 |
pg_polyline | 0.0.1 | 0.0.1 |
pgrx 0.19.1 |
pg_rational | 0.0.2 | 0.0.3 | Pigsty 构建 RPM;DEB 来自 PGDG |
pg_readme | 0.7.0 | RPM: 0.7.0DEB: 0.7.1 | RPM 保持 PGDG 的 0.7.0 版本;DEB 0.7.1 包含测试用子扩展 |
pg_relation_sql | - | 0.2.2 | 独立 SQL 工具包,不使用 CREATE EXTENSION;未计入 575 总数 |
pg_render | 0.1.3 | 0.1.3 | pgrx 0.19.1 |
pg_rewrite | 2.0.0 | 2.2 | RPM/DEB 包名统一标准化为 postgresql-PGVERSION-pg-rewrite |
pg_roast | - | 1.0 | |
pg_rrf | 0.0.3 | 0.0.3 | pgrx 0.19.1 |
pg_search | 0.24.0 | 0.25.2 | 支持 PG15–18;基于 pgrx 0.19.1;需预加载;新增 pgvector/OpenBLAS 依赖 |
pg_session_jwt | 0.5.0 | 0.5.0 | pgrx 0.19.1 |
pg_smtp_client | 0.2.1 | 0.2.1 | pgrx 0.19.1 |
pg_squeeze | 1.9.2 | 1.9.4 | |
pg_statement_rollback | 1.5 | 1.6 | |
pg_statviz | - | RPM: 0.9DEB: 1.1 | 不在默认分组中;RPM 0.9 与 DEB 1.1 的功能覆盖不同 |
pg_strict | 1.0.5 | 1.0.5 | pgrx 0.19.1 |
pg_strom | 6.1 | 6.1 | 仅支持 EL10 x86_64 / PG14;扩展 SQL 版本为 3.5 |
pg_summarize | 0.0.1 | 0.0.1 | 使用 pgrx 0.19.1 重新构建;因上游未提供许可证,已从默认分组中移除 |
pg_tde | 2.1 | 2.2 | Percona;支持 PG17–18 |
pg_tiktoken | 0.0.1
| 0.0.1 | pgrx 0.19.1 |
pg_tiktoken_c | - | 1.1 | |
pg_tokenizer | 0.1.1 | 0.1.1 | pgrx 0.19.1 |
pg_trickle | 0.81.0 | 0.81.0 | pgrx 0.19.1;PG18 |
pg_turbovec | - | 1.29.0 | pgrx 0.19.1 |
pg_uuid_v8 | 1.0.0 | 1.1.0 | 包含从 1.0 到 1.1 的升级脚本 |
pg_vault_tde | - | 1.7.0 | PG17–18;需 preload;仅 EL9/10 提供 RPM |
pg_wait_sampling | RPM: 1.1.11 | RPM: 1.1.11 | 新增 RPM;包版本 1.1.11,SQL 版本 1.1 |
pg_when | 0.1.9 | 0.1.10 | 打包迁移至 pgrx 0.19.1 |
pgactive | DEB: 2.1.7 | DEB: 2.1.7 | 仅 DEB;修复 PG14–18 构建 |
pgauditlogtofile | 1.8.4 | 1.8.5 | |
pgautofailover | 2.2 | 2.2 | 新增六个 EL / PG18 的 RPM 目标 |
pgbouncer_fdw | 1.4.0 | 1.4.0 | 新增 DEB 包 |
pgbson | 2.0.2 | 2.1.0 | RPM 包名为 postgresbson;DEB 源码包为 postgresbson |
pgclone | 4.3.2 | 4.4.2 | |
pgcontext | - | 0.2.0 | PG17–18;pgrx 0.19.1;可选的 pgvector 兼容性桥接 |
pgdd | 0.6.1 | 0.6.1 | pgrx 0.19.1 |
pgedge | RPM: 18.4 | RPM: 18.4 | 仅 RPM;修复 PG15–18 ABI |
pgextwlist | 1.19 | 1.20 | |
pgfr_analyze | - | 2.29.2 |
pg_flight_recorder 子扩展;PG15–18 |
pgfr_record | - | 2.29.2 | pg_flight_recorder;PG15–18 |
pgl_ddl_deploy | 2.2.1 | 2.2.1 | 新增 PG18 DEB 及 Ubuntu 26.04 / PG14–17 |
pglinter | 2.0.0 | 2.0.0 | pgrx 0.19.1 |
pglite_fusion | 0.0.6 | 0.0.6 | pgrx 0.19.1 |
pglogical_ticker | 1.4.1 | 1.4.1 | 新增六个 EL RPM / PG14–17 目标 |
pgmemcache | 2.3.0 | 2.3.0 | 新增 EL8 aarch64 / PG14–15 RPM |
pgmemento | - | 0.7.4 | 纯 SQL 扩展 |
pgml | 2.10.0 | 2.10.0 | 新增 EL10、Debian 13 和 Ubuntu 26.04;PG14–17 |
pgmnemo | 0.12.1 | 0.16.1 | PG17–18;需要 pgvector 0.7.0 或更高版本 |
pgmonitor | - | 2.2.0 | |
pgmp | - | 1.0.6 | 需要 GMP |
pgmq | 1.11.1 | 1.12.0 | |
pgmqtt | 0.3.0 | 0.4.1 | pgrx 0.19.1 |
pgnodemx | RPM:1.7 | RPM:2.0.1 | 仅提供 RPM;软件包 2.0.1,SQL 版本 2.0;增强了 cgroup 安全性 |
pgpcre | RPM:0.20190509 | RPM:0.20190509 | 仅提供 EL8/9 RPM |
pgrdf | 0.6.4 | 0.6.20 | pgrx 0.19.1 |
pgsentinel | 1.4.1 | RPM:1.4.2DEB: 1.4.0(U26:1.4.1) | RPM 1.4.2;DEB 1.4.0;Ubuntu 26.04 使用 1.4.1 |
pgsmcrypto | 0.1.1 | 0.1.1 | pgrx 0.19.1 |
pgspider_ext | 1.3.0 | 1.3.0 |
新增 PG18 支持;DEB 包支持 PG15 至 18 |
pgsqlmock | - | 1.0.1 | |
pgwasm | - | 0.1.0 | |
pgx_ulid | 0.2.3 | 0.2.3 | 基于 pgrx 0.19.1 |
pgzint | DEB: - | DEB: 0.2.0 | 仅限 Debian 13 / Ubuntu 26.04 DEB;需 Zint 2.14 或更高版本 |
plisql | 1.0 | 1.0 | IvorySQL 5.4;仅支持 PG18 |
pllua | 2.0.12 | 2.0.12 | 新增六个 EL / PG18 及 EL8 aarch64 / PG14–15 RPM 构建目标 |
plpgsql_check | 2.9.2 | 2.10.4 | Preload 变为可选项 |
plproxy | 2.11.0 | 2.12.0 | |
plprql | 18.0.1 | 18.0.1 | 基于 pgrx 0.19.1 |
plruby | - | 2.5.0 | 包含 jsonb_plruby、hstore_plruby 和 ltree_plruby |
plx | - | 1.3.1 | |
polardb-17 | 17.10.1.0-1PIGSTY | 17.10.1.0-2PGSTY | PG17 重新构建;发布后缀由 PIGSTY 统一为 PGSTY |
polarstore | 1.2.42-1PIGSTY | 1.2.42-2PGSTY | 重新构建;发布后缀由 PIGSTY 统一为 PGSTY |
postbis | - | 1.0 | 包含 PG14 至 18 的兼容性补丁 |
powa | 5.1.2 | RPM: 5.1.0DEB: 5.2.0 | DEB 版本为 5.2.0;RPM 仍为 5.1.0 |
pre_prepare | RPM: 0.9 | RPM: 0.9 | 仅限 RPM;许可证元数据改为 PostgreSQL |
provsql | 1.10.0 | 1.12.0 | |
q3c | RPM: 2.0.2DEB: 2.0.4 | 2.0.5 | 最终 RPM 和 DEB 版本均为 PGDG 2.0.5 |
qdgc | - | 0.1.0 | 包含 qdgc_postgis 子扩展 |
rdf_fdw | 2.6.0 | 2.7.0 | |
rdkit | 202503.6 | 202503.6 | 不同平台保留 202303.3 或 202503.6 版本;运行时版本未统一 |
re2 | 0.3.0 | 0.4.1 | PG16–18 |
smlar | 1.0 | 1.0 | 由于上游未提供许可证,已从默认组中移除 |
snowflake | 2.4 | 2.5.0 | pgEdge;PG15–18 |
spat | 0.1.0a4 | - | 上游已弃用的 alpha 项目;已从扩展目录中移除 |
spock | 5.0.6 | 5.0.10 | pgEdge;PG15–18 |
sqlite_fdw | 2.5.0 | 2.5.0 | 新增 PG18 支持;EL8 使用系统 SQLite |
sslutils | 1.4 | 1.4 | 新增 EL8 双架构 / PG18 RPM 包 |
system_stats | DEB: 4.0 | DEB: 4.1 | 仅 DEB;覆盖 10 个 DEB 目标 |
tdigest | 1.4.3 | 1.4.4 | |
timescaledb | 2.28.2 | 2.29.1 | PG16–18 |
timescaledb_toolkit | 1.23.0 | 1.23.0 | pgrx 0.19.1;PG15–18 |
timeseries | DEB: 0.2.1 | DEB: 0.2.1 | 仅 DEB;修复 partman/cron 建议依赖及文档 |
typeid | 0.3.0 | 0.3.0 | pgrx 0.19.1 |
tzf | 0.3.0 | 0.3.0 | pgrx 0.19.1 |
unit | 7.10 | 7.10 | 许可证元数据变更为 GPL-3.0-or-later |
uri | RPM: 1.20251029 | RPM: 1.20251029 |
仅提供 RPM 包;pguri 已重命名为 pg_uri,并通过 Provides/Obsoletes 保持兼容 |
vchord | 1.1.1 | 1.1.1 | pgrx 0.19.1 |
vchord_bm25 | 0.3.0 | 0.3.0 | pgrx 0.19.1 |
vector | 0.8.4 | 0.8.6 | |
vectorize | 0.26.2 | 0.26.2 | pgrx 0.19.1 |
vectorscale | 0.9.0 | 0.9.0 | pgrx 0.19.1 |
wal2mongo | 1.0.7 | 1.0.7 | 新增 PG17–18 支持 |
wrappers | 0.6.1 | 0.6.2 | pgrx 0.19.1 |
zlog | 1.2.18-1PIGSTY | 1.2.18-2PGSTY | 重新构建;发布后缀由 PIGSTY 统一改为 PGSTY |
可观测性
- 整套 Grafana 监控面板通过 Pig/Grafana 工具以 Dashboard API v2 重新导出。新增 4 个 Kafka 面板和 5 个 MySQL 面板,并刷新了 Node、PostgreSQL、Redis 和 Infra 面板的链接、变量与布局。
- MinIO/Silo Overview 和 Instance 面板迁移至 Metrics V3。Victoria 抓取
/minio/metrics/v3,并丢弃带有非空bucket标签的高基数样本。 pg_exporter配置更新至 1.4.0,修复了 1.4.1 版pg_subrel查询产生重复时间序列的问题。- PG19 新增
pg_sub_19、pg_recovery_state、pg_wal_19、pg_lock_stat和pg_vacuum_score采集器。PG10+ 新增pg_xact_age事务年龄直方图、复制槽idle_timeout,以及 WAL Receiver 的connecting状态编码。 - Kafka JMX/协议导出器和 MySQL 导出器接入统一的服务发现、Victoria 抓取与告警规则。缺少
PRIORITY字段的 Journald 记录也能安全处理。
软件仓库、离线包与供应链
- REPO 和 CACHE 使用
sow create --pigsty原子化地生成 DNF/APT 元数据及 SHA-256 的repo_complete标记文件,不再注入伪造的 ModuleMD。 module_hotfixes现在是针对每个存储库的显式选择,仅在必须替换系统模块流的 EL 存储库中启用,避免盲目绕过 DNF 模块过滤器。- 如果
dist/<version>/pigsty-<version>.tgz已存在,cache.yml会将其包含在离线存储库中。它不会隐式打包当前工作区或从互联网下载源代码。 - RPM 导出包名称从下划线更改为连字符,例如
node_exporter→node-exporter;无版本号的Provides/Obsoletes条目桥接旧名称。 - 本地基础设施重新打包标准化了
PGSTY供应商、SPDX 许可表达式、1PGSTY发布后缀、/etc/default/<service>环境文件、/usr/lib/systemd/system下的供应商单元以及/usr/share/doc/<package>下的法律文件。 - 简单的二进制包使用通过 SHA-256 固定位置的不可重复上游归档;供应商原生的 RPM/DEB 文件保留其原始字节和元数据。Silo、Grafana、Code、Code Server 和 Vector 等直接产物获得了固定的 URL 和校验和。
- 中国大陆地区路由的系统化刷新:操作系统、Docker、Grafana、Percona、MongoDB APT 和 uv/PyPI 优先使用腾讯云;EL/Docker 保留华为云和阿里云回退;MySQL/Kubernetes 使用中科大源;ClickHouse 使用华为云。
基础设施包更新矩阵
该表格将本周期的基础设施批次整合为每包一行,仅显示 v4.4.0 值、最终 v4.5.0 值和必要说明。省略了中间版本。“构建”或“验证”仅描述打包记录;发布时签名的存储库索引仍是可安装版本的权威依据。
| 包名 | 先前 | 最终 | 备注 |
|---|---|---|---|
agentsview | 0.37.5 | 0.40.1 | |
claude | 2.1.206 | 2.1.227 | |
cloudflared | 2026.7.1 | 2026.7.3 | |
code | 1.128.0 | 1.133.0 | |
code-server | 4.127.0 |
4.132.0 | |
codex | 0.144.1 | 0.147.0 | |
crush | 0.84.0 | 0.88.1 | 基于官方包含许可证的 tarball 重新构建以符合合规要求 |
dblab | 0.43.0 | 0.47.4 | |
duckdb | 1.5.4 | 1.5.5 | |
etcd | 3.6.13 | 3.7.1 | |
ferretdb | 2.7.0 | 2.7.0 | 构建链曾临时更名为 ferretdb2,随后恢复为 ferretdb |
grafana | 13.1.0 | 13.1.3 | 包含安全修复 |
grafana-infinity-ds | 3.8.0 | 3.11.3 | |
grafana-victorialogs-ds | 0.29.0 | 0.31.0 | |
headscale | 0.29.2 | 0.29.3 | |
jmx-exporter | - | 1.6.0 | 新增 noarch 软件包 |
juicefs | 1.4.0 | 1.4.1 | |
k3s | - | 1.36.3 | 上游版本 v1.36.3+k3s1 |
k3s-images | - | 1.36.3 | 双架构离线镜像,与 k3s 版本精确匹配 |
logcli | 3.6.7 | 3.7.6 | 随 Loki 组件集更新 |
loki | 3.6.7 | 3.7.6 | 随 Loki 组件集更新 |
loki-canary | - | 3.7.6 | 新增 Loki 伴随组件 |
mcli | 20260417000000 | 20260806000000.0.0 | |
mcp-toolbox | 1.6.0 | 1.8.0 | 原 genai-toolbox 软件包名及配方统一标准化为 mcp-toolbox |
minio |
20260618000000 | 20260804000000 | 仓库包保留;不再是 v4.5 的 MINIO 后端 |
mongodb-exporter | 0.51.0 | 0.52.0 | |
mtail | 3.0.8 | 3.4.7 | |
node-exporter | 1.11.1 | 1.12.1 | RPM 包名由 node_exporter 更名为 node-exporter |
nodejs | 24.18.0 | 24.19.0 | Node.js 24 LTS 安全更新 |
npgsqlrest | 3.20.0 | 3.21.0 | |
opencode | 1.17.18 | 1.18.16 | |
pev2 | 1.22.0 | 1.23.0 | |
pg-exporter | 1.3.0 | 1.4.1 | 升级至 1.4 系列,采集器配置同步更新 |
pg-hardstorage | 1.0.8 | 1.2.1 | |
pg-timetable | 6.3.0 | 7.0.0 | 大版本升级 |
pgbackrest-exporter | 0.23.0 | 0.24.0 | |
pgschema | 1.12.0 | 1.12.2 | |
pgstream | 1.1.1 | 1.3.1 | |
PGSTY package release | mixed | 1PGSTY | 自建 RPM/DEB 包统一使用标准化的 release 后缀 |
pig | 1.5.1 | 1.8.0 | 扩展目录刷新 |
postgrest | 14.14 | 16.1 | 大版本升级;最低要求 PostgreSQL 14 |
prometheus | 3.13.1 | 3.13.2 | 安全与稳定性修复 |
promscale | 0.17.0 | 0.17.0 | 上游已归档,保留最终版本 |
promtail | 3.6.7 | 3.6.7 |
版本锁定在 3.6.7;Loki 3.7 不再发布 Promtail 更新 |
rainfrog | 0.3.19 | 0.4.3 | |
rclone | 1.74.4 | 1.75.0 | |
redis-exporter | 1.86.0 | 1.89.0 | RPM 包名由 redis_exporter 改为 redis-exporter |
rustfs | 1.0.0-b8 | 1.0.0-rc.1 | 预发布版本保留在仓库中;并非 v4.5 的 MinIO 后端 |
sabiql | 1.14.0 | 1.15.1 | |
sealos | 5.1.1 | 5.0.1 | 锁定在最后一个 Apache-2.0 稳定版本 |
seaweedfs | 4.39 | 4.41 | |
silo | minio 20260804000000 | 20260806000000.0.0 | 取代 MinIO 服务端,成为 v4.5 唯一的对象存储后端 |
sow | 0.2.0 | 0.3.0 | 核心 REPO/CACHE 依赖项 |
stalwart | 0.16.12 | 0.16.17 | |
timescaledb-tools | 0.19.0-1 | 0.19.0-2 | 包含 timescaledb-parallel-copy 0.13.0 |
uv | 0.11.28 | 0.12.3 | |
v2ray | 5.51.2 | 5.52.0 | |
vector | 0.56.0 | 0.57.0 | |
victoria-logs | 1.51.0 | 1.52.0 | |
victoria-metrics | 1.147.0 | 1.149.0 | |
victoria-metrics-cluster | 1.147.0 | 1.149.0 | |
victoria-traces | 0.9.4 | 0.10.0 | |
vip-manager | 4.2.0 | 5.0.0 | 主版本升级;安装后默认禁用;配置不向后兼容 |
vlagent | 1.51.0 | 1.52.0 | |
vlogscli | 1.51.0 | 1.52.0 | |
vmutils | 1.147.0 | 1.149.0 | |
xray | 26.3.27 | 26.3.27 | 26.7.28 候选版本撤回,稳定版仍为 26.3.27 |
平台、模板与发布工程
- 推荐的平台基线更新为 Rocky Linux 9.8/10.2、Debian 12.15/13.6 和 Ubuntu 22.04.5/24.04.4/26.04.0,Terraform 云镜像及固定的 Vagrant box 版本同步更新。
- Vagrant 根磁盘大小现可通过
root_disk配置,默认 64 GiB;在all、rpm、deb、oss和pro构建矩阵中为 128 GiB。原有的disk配置仍表示额外的/data磁盘,默认 128 GiB。vagrant 用户的登录 Shell 统一为标准化的 Bash。 - 新增八节点
ha/octo模拟环境。ha/trio变为 VIP/HAProxy 后端的三节点 Silo 部署;demo/minio明确选择 Silo 并精简其本地仓库包组。 safe和demo模板使用有效的扩展别名。Tuned 配置路径适配操作系统,集群规模比较保持与 2.19 之前 Ansible 版本的兼容性,并移除未使用的内部标志及 MINIO/INFRA 变量。- Docker 基础镜像更新至 Debian 13.6,标记为 v4.5.0。镜像发布改为手动触发,基于标签构建。
docker/Makefile将数据目录固定在仓库本地的./data;make purge不再接受外部DATA变量覆盖,且无倒计时机制。- GitHub Actions 批量更新了 checkout、CodeQL、Docker build/login 和 Cosign。发布、bootstrap、安装、校验和及构建模板收紧了参数与文件处理。
- 发布归档会根据
conf/meta.yml生成顶层的pigsty.yml,包含 Kafka/MySQL playbook,并移除旧的 Mongo playbook。签名流程只对pigsty-<tag>.tgz源归档生成 Cosign 签名,不再为多 GB 的离线包签名。 - README、SECURITY、CONTRIBUTING、AGENTS 和 NOTICE 文档统一更新至 v4.5,涵盖 575 个扩展、Silo、Redis/Valkey 和 Mongo 模式,并更新了 2026 版权与商标声明。
兼容性变更与升级注意事项
从 v4.4 升级前,请仔细阅读以下变更:
- FERRET 拆分:需要移除旧的
ferretdbsystemd 服务。先通过 Mongo 配置模式部署 DocumentDB 数据层,再用docker.yml/app.yml部署 FerretDB 协议层。旧的mongo.yml、mongo_*参数和专用仪表盘已全部移除。 - Silo 替代 MinIO 服务端:
minio_type现在只接受silo。协议和磁盘格式兼容并不等于迁移成功;切换现有对象存储前,务必验证备份、就地兼容性、回滚方案以及真实的读写流量。 ha/trio对象存储拓扑变更:新模板使用三个单磁盘 Silo 成员。不要通过简单添加两个成员的方式就地扩展现有单节点池;应新建集群并迁移对象。- HAProxy 单元变更:Pigsty 不再渲染
/etc/default/haproxy,但单元仍可在该文件存在时读取它。只使用EXTRAOPTS,保留-S /run/haproxy-master.sock,不要添加-f。 - 显式集群身份:自定义 inventory 必须为目标主机定义
pg_cluster、redis_cluster、minio_cluster、kafka_cluster或mysql_cluster。只依赖固定组名的旧 inventory 需要补充这些身份定义。 - PGSQL 完整 playbook 仅用于初始化:不要对已初始化的节点执行完整的
pgsql.yml。日常维护请使用精确的 tags;如需完整重建,先验证备份并通过正式流程移除目标成员。 - Valkey 采用选择性启用:仅在配置
redis_type: valkey时安装 Valkey;模块参数、配置路径及监控接口均沿用 Redis 命名规范。 - SOW 为核心依赖:REPO/CACHE 需依赖 SOW 0.3.0。若旧的离线包或本地仓库缺少
sow,需先从 Pigsty Infra 仓库添加。 - Exporter RPM 命名变更:外部自动化流程及私有仓库需将旧名称(如
node_exporter、redis_exporter)迁移至node-exporter和redis-exporter。 - 默认扩展组收紧许可证限制:依赖
emailaddr、explain_ui、oidc_validator、pg_summarize或smlar的环境,必须显式安装这些扩展,并独立评估许可证合规性及再分发边界。 - Docker 清理语义变更:
make purge将直接删除仓库本地的./data目录;操作前请确认其中不包含需保留的容器数据。 - Vagrant 磁盘语义变更:
root_disk控制系统盘,disk控制额外的/data磁盘。分布式 Silo 要求后者必须是真实的独立挂载点。
获取 v4.5.0
在受支持的全新 Linux 节点上安装:
curl -fsSL https://repo.pigsty.io/get | bash -s v4.5.0
cd ~/pigsty
./bootstrap
./configure
./install.yml生产环境升级并非覆盖式安装。请阅读上述兼容性变更,明确目标集群、备份状态、清单标识及当前运行状态,随后使用显式的 -l 作用域执行检查模式或维护操作。