非法加冯

Pigsty v3.6:全能PG发行版的关键一步

用户朋友们,Pigsty v3.6 RC 已经发布了,这个版本经过长达两个月的烤制,即将新鲜出炉。这将是 Pigsty v4.0 之前的最后一个主要版本,进行了许多重构与改进,为终极全能 PostgreSQL 发行版奠定了一个坚实的基础。

在 v3.6 中,针对 PostgreSQL,MinIO,Etcd 的部署任务进行了深度优化与重构,支持了一种全新的 PostgreSQL 内核:Percona PG TDE 内核,带有开箱即用的透明加密功能。 此外,我们还优化了 Supabase 的自建体验,跟进至最新的官方模板,并且解决了一些官方模板中存在的问题。

Image

针对一些用户遇到的实际问题,我们彻底移除了幂等剧本中的 “删库” 功能,剥离为单独的删库剧本。 并且新增了用于执行时间点恢复的 pgsql-pitr 剧本,帮助您傻瓜式地全自动完成 PITR 恢复。

此外,安装流程也进一步进行了简化与加速,从原来的 下载-引导-配置-安装,变为三步走: 下载,配置,安装。而且现在默认使用在线安装,可以跳过本地软件仓库的构建过程。


全新内核支持

最近 Percona (那个专业做 MySQL 服务的公司)的 pg_tde 扩展在经过了几年长跑之后终于正式发布 1.0 GA 版本了。 许多 “企业级” PostgreSQL 发行版都以 “透明加解密” 特性作为一个核心卖点,而 pg_tde 扩展可能是第一个足够成熟的开源透明加密扩展,为开源 PostgreSQL 提供了一个真正意义上的企业级透明加密解决方案。

不过美中不足的是,目前这个扩展需要在打补丁的 PostgreSQL 内核上才能运行 —— 也就是 Percona 的 Postgres 发行版。当然这可难不倒 Pigsty,我们在它们官宣之后立刻就支持了这个内核分支。 

Image

你只需要两行命令,就可以启用并安装它,并且实用 Pigsty 提供的完整 RDS 能力 —— 监控,高可用,PITR,IaC,等等……,和原生 PG 内核一样。

然后, Pigsty 支持的 PostgreSQL 内核数量已经来到了惊人的 10 个。

Image

Pigsty 已经成为了 PostgreSQL 发行版的发行版,一个 “元发行版”。各家 PostgreSQL 分支内核全都能在 Pigsty 的加持下,成为一个带有高可用,监控,IaC,PITR 的 “企业级数据库服务”。


强力扩展更新

除了 Percona 透明加密内核之外,PG 世界中的另一个新秀内核 —— OrioleDB 也发布了 1.5 beta12 版本,Supabase 的 CEO 透露很快就会正式 GA 了。 Pigsty 也在第一时间编译了 OrioleDB 补丁版本的 PG,以及 OrioleDB 扩展。

除此之外,还有一个有趣的扩展 pgactive,这是一个由 AWS 开发并开源的PG 多活扩展,Jonathan Katz 吹嘘说它解决了亚秒级高可用切换的问题。 这个扩展依赖缺失的 pgfeutils ,编译起来还有点麻烦,所以我也替各位打好开箱即用的二进制包了!而 pigsty 可用的扩展数量也相应来到 423 个。

Image

此外,PG18 beta2,OrioleDB,TimescaleDB,Citus,FerretDB & DocumentDB,DuckDB,ETCD 也都迎来例行版本更新。

另外值得一提的是,现在 Pigsty 的扩展目录也是用 Next 糊的,观感比以前好了很多,新地址在:https://ext.pgsty.com[1]

Image

更好的 Supabase

Pigsty v3.6 提供了更流畅的 Supabase 自建体验。还修复了一些 Supabase 官方模板中的问题,比如,logflare 复制槽不推进的问题, 大量打印错误日志的问题,以及 Studio 无法查看两项 Analytics 日志的问题。

想要自建一套生产级 Supabase 有多简单?只需要以下几行命令就可以完成,更详细的说明请参考 Pigsty 网站上的 Supabase 自建教程。

Image

而且 Pigsty 现在默认使用由 1Panel 提供的的 Docker 镜像站点,在墙内的下载速度更快了。

目前 Pigsty 和 StackGres 是唯二两个自建 Supabase 方案的开源供应商,Pigsty 基于裸 Linux 系统交付,而 StackGres 基于 Kubernetes 交付。


更好的 PITR

在之前的版本中,Pigsty 提供了一个 pg-pitr 的脚本,用于 “半自动” 辅助用户完成 PITR 恢复。 在这个版本中,我们提供了专用的全自动 pgsql-pitr 剧本,用于执行一键时间点恢复。

Image

Pigsty 会自动为你暂停高可用切换,关闭 PostgreSQL,生成并执行 pgbackrest PITR 恢复命令,到你指定的目标位点。 校验之后重新拉起 PostgreSQL,重新启用高可用切换。你还可以不断快速重试(因为是原地增量),便于找到真正需要恢复的位点。

此外,新的 PITR 剧本还支持了一种新的用例 —— 用户不希望在现有集群上原地进行 PITR (怕影响业务)。 而是希望新启动一个实例(或者摘一个从库下来)执行 PITR 恢复,然后在这个新实例上抽取数据,手工导入到现有集群中。


更好的 ETCD 管理

Pigsty v3.6 中,对 Etcd 模块进行了重构,新增了独立的 etcd-rm.yml 剧本与扩缩容 SOP 脚本。

在此前的版本里面,扩容 etcd / 缩容 etcd 涉及到一系列略显复杂的命令操作。而在这个版本中,一把梭干就完了:

bin/etcd-add              # 创建 etcd 集群,或者刷新现有集群状态
bni/etcd-add 10.10.10.11  # 扩容 etcd 集群,新增一个成员
bni/etcd-rm               # 移除整个 etcd 集群
bni/etcd-add 10.10.10.11  # 将 10.10.10.11 成员从集群中移除

此外, etcd.yml 剧本现在 不再清理现有 ETCD 集群,清理集群的工作现在放在了专门的 roles 与剧本中实现了。因此,etcd 集群的维护变的更加简单明了,简单易用了。


更好的 MinIO

Pigsty v3.6 对 MinIO 模块进行了重构,新增了 Plain HTTP 模式,并且调整了默认的三个桶与默认用户。

在之前的版本中,Pigsty 默认为 MinIO 启用 HTTPS,这是通过本地 CA 签发自签名证书来实现的,能够避免内网流量窃听。 不过这也会带来一些烦恼,如果 Pigsty 管理节点之外的客户端,比如容器中的客户端,需要信任这个 CA 才能访问 MinIO。

因此在这个版本中,我们新增了一个开关,允许 MinIO 运行在纯 HTTP 模式下。 不过切记,PG 备份工具 pgbackrest 是不接受使用 HTTP 模式的 MinIO 的。 如果你还是要用本地 MinIO 来存储 PG 备份,那么还是需要使用 HTTPS 模式。 只有当你的 MinIO 纯粹是给外部服务用的时候,才适合使用 HTTP 模式。

另一个 MinIO 上的改进是默认桶与权限。之前 Pigsty 会默认为 MinIO 创建三个桶:pgsql,infra,redis, 不过实际用到的只有 pgsql 桶。现在 Pigsty 默认只创建三个桶:pgsql,meta,data,并且为 meta 桶与 data 桶创建了两个新的用户 s3user_meta 与 s3user_data。 此外,Pigsty 现在还会为每个定义的桶创建一个同名的策略,拥有对相应桶对完整权限,并分配到三个默认用户上,

Image

通过这样的设计,像 Supabase / Dify 这样的应用就可以直接使用这两个桶了,而不需要再手动创建桶与用户了。


更简单的安装流程

在以前,Pigsty 的安装步骤分为四步:下载,引导,配置,安装。其中 “引导” 这一步指的是解压离线软件包或者配置上游软件仓库,从而安装 Ansible 与依赖的过程。

在 Pigsty v3.6 中,这个步骤被合并到下载中了。当你执行 Pigsty 安装脚本时,它会自动执行 ./bootstrap 脚本,尝试安装 Ansible。

所以你只需要三步就可以完成 Pigsty 的安装了。

curl -fsSL https://repo.pigsty.io/get | bash;cd ~/pigsty; ./configure; ./install.yml;

在这个版本中,我们还把基本所有的配置模板都调整为 单节点 模式。因此,你可以很方便的选用自己想要的配置模板来快速上手。


跳过本地仓库

在这个版本中,默认的安装策略发生了变化。在以前,Pigsty 都会在安装过程中创建一个本地软仓库,将所有软件包都下载到本地,然后再从本地仓库安装软件包。 现在,绝大多数的配置模板都使用了另一种策略:不再先下载到本地,而是直接从互联网上游安装。

Image

这里有一些非常明显的好处,许多用户反馈的安装报错都在本地 Repo 下载和 Nginx 服务拉起的阶段 —— 例如 el9.aarch64 系统下直接安装 patroni-etcd 是没有问题的。 但如果你尝试先下载再安装 patroni-etcd ,就会因为 PGDG 上游的愚蠢配置错误导致安装失败。 另外,用于提供本地仓库服务的 Nginx 也经常会因为各种安全策略,防火墙配置等问题导致无法正常启动。

Image

另一个显著的好处是,安装速度显著提升,因为只有真正需要安装的包才会被下载安装,而不是一次性下载所有包。

一个明显的洞察是,大比例的用户安装 Pigsty 是在一台 Linux 单节点上,“不需要” 本地软件仓库提供的多节点一致性。 而需要本地软件仓库的用户,使用多节点高可用安装模式也可以通过简单的配置(repo_enabled, node_repo_modules)重新启用本地仓库。 或者直接使用默认就启用本地仓库的 rich / full 模板。


其他改进

在 Pigsty v3.6 中,我们还对很久没有更新的 tuned 模块进行了优化,针对现代硬件与 NVMe 磁盘进行了优化。 移除了一些过时的配置参数,并且新增了针对 NVMe / 虚拟化 SSD 的调度/预读参数优化。

另外,我还把 Google 新发布的 MCP Toolbox (数据库 MCP 工具箱)给打包整合到 Pigsty 中了。 这种预置模板 SQL 的方式解决了一部分数据库安全性的问题,应该可以在一些场景中试点使用。


全新的网站

另一个有趣的更新是 Pigsty 的文档站点,正如《数据库老司机勇闯前端大观园》所说,Pigsty 现在有了一个全新的文档站点:https://doc.pgsty.com。[2]

这个站点是用 Next.js 与 Fumadocs 现代前端技术栈打造的。来自兰天游老板和 Claude Code 的强力助攻,糊出了一个像模像样的现代文档站点。

Image

这个文档站点使用英文作为默认语言,目前已经基本完工,中文部分正在翻译建设中。如果有感兴趣的朋友可以直接在 Github 上 PR 或者提 Issue。


下一步是什么?

PostgreSQL 18 将于今年 9 月份发布,Pigsty 准备在 PG 18 发布后正式发布 v4.0 版本。 v4.0 版本主要计划有以下几个方面的改进:

•命令行工具 pig 完整封装 Ansible 剧本功能,接口初步定型•监控系统全面升级,使用 VictoriaMetrics / VictoriaLogs 替代 Prometheus / Loki•使用 vector 替代过时的 promtail 作为日志收集组件•考虑使用 Caddy 替代 Nginx 作为网站门户,但还没决定

Pigsty v4 最大的改动就是日志收集部分,在数据库模块上的调整目前已经在 v3.6 完成了。

另一个目标是等新版的英文文档站足够成熟,我也准备在海外开始进行一些宣传与推广了。 目前来看,生态对 PostgreSQL 的需求非常旺盛,这是个极好的机会,抢占 PostgreSQL 中的 Debian / Ubuntu 发行版的生态位。

v4.x 的主旋律将会是 DBA Agent。 Pigsty 已经拥有了一个 DBA Agent 所需的完整上下文,核心就是这个 PG 最强监控系统。 等文档中沉淀的领域知识足够丰富,给 Pig 命令行工具套上 MCP,一个能打的全自动驾驶数据库 DBA Agent 就诞生了。

Image

Pigsty v3.5 发布,4K Star,Supabase自建优化,PG18支持,421 PG扩展,全新网站

Pigsty v3.4发布:更好的备份与PITR,排序,基础设施与应用

Pigsty v3.3 发布:扩展遥遥领先,丝滑建站体验,Dify, Supabase, Odoo一键自建

Pigsty v3.2:命令行工具 pig,完备ARM支持,Supabase & Grafana 加强

Pigsty v3.1:Supabase自建,PG17上位,MinIO改进,ARM/Ubuntu24支持

Pigsty v3:海量扩展,可替换内核,RDS服务,助力PostgreSQL进入全盛时代!

Pigsty v2.7:集异璧之大成,扩展尽入彀中

Pigsty v2.6:PostgreSQL 踢馆 OLAP

Pigsty v2.5.1发布:PG16能打了吗?

Pigsty v2.5 发布:Ubuntu/Debian支持与监控改版/新扩展

Pigsty 2.4:PG16支持,RDS监控与新扩展!

Pigsty v2.3.1:HNSW PGVECTOR来了!

Pigsty v2.3 发布:应用生态丰富

Pigsty v2.2 发布 —— 监控系统大升级

Pigsty v2.1 发布:向量扩展 / PG12-16 支持

Pigsty v2.0.2 更好的开源RDS替代:Pigsty

Pigsty v2.0 发布,炮打 RDS

Pigsty v2 正式发布:更好的RDS PG开源替代

Pigsty v1.5.1发布

Pigsty v1.5 发布与新特性

Pigsty v1.4 正式发布!

Pigsty v1.4 前瞻

Pigsty v1.3.1 安装教程

 Pigsty v1.3 开箱即用的 Redis 发行版

Pigsty v1.2 发布

Pigsty v1.1 发布/新功能介绍

Pigsty v1正式发布:开箱即用的PostgreSQL开源发行版