Pigsty v4.5.0 介绍与选型指南
Pigsty v4.5.0 介绍与选型指南:开箱即用 PostgreSQL 发行版的定位、架构、功能边界、Apache-2.0 许可与版本取证,并与原生 PG+自搭监控、Crunchy Data、CloudNativePG 做量化对比,给出自托管选型建议。
Pigsty v4.5.0 介绍与选型指南
目标:帮读者在动手部署前判断「Pigsty 是不是我要的 PostgreSQL 发行版」。本篇基于项目官方仓库(pgsty/pigsty)、官方文档站 pigsty.io 与 pigsty.cc、GitHub Releases 与 shields.io 星标徽章的联网溯源(查询日期 2026-10-25),讲清 Pigsty 是什么、由哪些部件组成、能提供哪些数据库服务能力、对服务器有哪些硬要求,并与「原生 PostgreSQL + 自搭监控」、Crunchy Data、CloudNativePG 做量化对比,给出自托管选型建议。部署、参数与 CLI 的逐步实测不在本篇展开。
一、环境信息与取材口径
本篇是选型篇,不包含本机部署实测;所有项目事实均来自可公开复核的来源,查询日期统一为 2026-10-25:
- 项目仓库:
https://github.com/pgsty/pigsty(原 Vonng/pigsty,已迁移至 pgsty 组织;作者 Ruohang Feng / Vonng) - 最新稳定版:
v4.5.0(shields.io 版本徽章与 GitHub Releases 页一致) - 许可证:Apache-2.0(仓库
LICENSE文件;v4.0 起回归宽松的 Apache-2.0 协议) - 社区规模:GitHub 星标约 5.9k(shields.io 星标徽章实查;不直接调用 GitHub API)
- 官方文档:
https://pigsty.io/(国际)、https://pigsty.cc/(中文) - 在线演示:
https://demo.pigsty.cc/
说明:版本号与星标属于随时间变化的数据,读者复核时可能已有更新;本文只对 2026-10-25 这个时间点的取值负责。选型结论不依赖星标的具体数值,而依赖功能边界与运行要求。
二、软件概述
Pigsty 名字源自 PostgreSQL In Great STYle,也可拆解为 Postgres + Infras + Graphics + Service + Toolbox,是一个可移植、可扩展的开源 PostgreSQL 发行版,用于在本地或自建数据中心构建生产级数据库服务。
PostgreSQL 内核本身足够强大,但要成为一个「可上线的数据库服务」,还需要补齐高可用、备份恢复、监控告警、访问控制、参数调优、扩展安装、连接池化、负载均衡等一整套外围能力。Pigsty 的核心价值就是把这些能力打包成一个声明式、一键部署的发行版,让自建 PostgreSQL 达到接近云厂商 RDS 的服务水准。
它解决的不是「装一个 PG」这一层问题,而是把数据库内核 + 高可用 + 可观测 + 备份 + 安全 + 扩展生态串成一条完整的交付流水线:
- 内核与扩展:提供 PostgreSQL 14–18 多版本,内置 600+ 扩展插件(分布式、时序、地理空间、图、向量、全文搜索等多模态能力)。
- 高可用:基于 Patroni + Etcd + HAProxy 打造故障自愈架构,主库故障 RTO < 45s、RPO ≈ 0。
- 可观测:基于 Grafana + VictoriaMetrics + VictoriaLogs + Alertmanager 的现代监控栈,3000+ 监控指标,覆盖全局到单对象 CRUD。
- 备份恢复:基于 pgBackRest 提供全量/增量备份与时间点恢复(PITR),可选对象存储归档。
- 声明式管理:全部用 Ansible + YAML 清单描述环境,一条
./deploy.yml完成从裸机到生产数据库的全流程。
三、核心架构
3.1 四层架构
Pigsty 自底向上分为四层,每层职责清晰、可独立替换:
| 层级 | 组件 | 作用 |
|---|---|---|
| 节点层 Node | OS 调优、本地仓库、时间同步、DNS、防火墙 | 把裸机/虚机/容器调成数据库就绪状态 |
| 基础设施层 Infra | Etcd、MinIO、Grafana、VictoriaMetrics、VictoriaLogs、Alertmanager、HAProxy、Nginx | 提供分布式一致性、对象存储、监控可视化、指标/日志采集、告警、负载均衡 |
| 数据库层 PGSQL | PostgreSQL、Patroni、pgBackRest、pgbouncer、pg_exporter | 数据库实例、高可用管理、备份、连接池、指标暴露 |
| 应用层 APP(可选) | pgAdmin、Bytebase、Jupyter、Code Server、FerretDB | 上层管理与开发工具 |
3.2 高可用与流量切换
生产形态下,一个 PG 集群由 1 主 N 从组成,Patroni 通过 Etcd 做选主与故障检测,HAProxy 作为流量入口把读写请求路由到当前主库。主库宕机时 Patroni 自动提升一个从库为新主,HAProxy 检测到主库变化后切换流量,应用无需感知。
💡 技术拓展:PostgreSQL 高可用方案不止 Pigsty 所用的「Patroni + Etcd + HAProxy」。常见方案对比——
方案 选主/协调 流量切换 RTO 适用场景 Patroni + Etcd Etcd 分布式选主 HAProxy/VIP 自动 < 45s 生产首选,Pigsty/Crunchy 采用 repmgr + 手工切换 repmgr 检测 手工/VIP 分钟级 轻量、可接受人工介入 pg_auto_failover 内置 monitor 内置 < 30s Citus 官方,侵入性低 Stolon Etcd/Consul Proxy < 30s 云原生友好 流复制 + 手工提升 无 手工 分钟级 最简单,RPO 可能丢数据 本文 Pigsty 采用第一种:Patroni + Etcd + HAProxy,理由是生态成熟、RTO/RPO 指标好、与 pgBackRest 备份链无缝衔接。
3.3 可观测栈
Pigsty 的监控不是「装个 Prometheus 就完事」,而是一整套有面板、有指标、有告警的交付物:
- Grafana:可视化,Pigsty 预置了集群概览、节点、PG 实例、数据库、表、查询、复制、事务、WAL、磁盘、慢查询等数十个面板。
- VictoriaMetrics:Prometheus 兼容的指标存储,比原生 Prometheus 更省资源、支持长期存储。
- VictoriaLogs:日志采集与查询,替代 ELK 的轻量方案。
- Alertmanager:告警路由与通知,预置 PG 异常、复制延迟、磁盘水位等告警规则。
- pg_exporter / node_exporter / blackbox_exporter:分别采集 PG 内部指标、节点指标、服务可用性探测。
3.4 声明式配置
所有部署信息写在一份 pigsty.yml(Ansible inventory)里:节点 IP、集群拓扑、PG 版本、扩展列表、用户/数据库、密码、监控参数、备份策略等。修改后重跑 ./deploy.yml 即可幂等地把环境收敛到期望状态——这是「基础设施即代码」在数据库领域的落地。
四、功能特性
4.1 开箱即用的发行版
- 内置 600+ PostgreSQL 扩展(
pigsty.io/ext/可查),覆盖分布式(Citus)、时序(TimescaleDB)、地理空间(PostGIS)、向量(pgvector)、全文搜索、图查询等多模态能力。 - 支持 PostgreSQL 14、15、16、17、18(v4.5.0 默认 18)。
- 支持 EL 9/10、Debian 12/13、Ubuntu 等主流发行版,x86_64 与 Arm64 双架构。
4.2 故障自愈的高可用
- 主库故障自动切换,RTO < 45s,RPO ≈ 0(同步复制可保证 0 数据丢失)。
- 滚动升级无需应用配合:逐个重启从库、切换主库、再升级旧主。
- 读写分离:HAProxy 自动把写请求发主库、读请求分发到从库。
4.3 惊艳的可观测能力
- 3000+ 监控指标,从集群全局到单表 CRUD 全覆盖。
- 预置告警规则,覆盖复制延迟、连接数、磁盘水位、慢查询、实例宕机等。
- 日志统一采集到 VictoriaLogs,可在 Grafana 中与指标联动排查。
4.4 完整的备份与时间点恢复
- 基于 pgBackRest 的全量 + 增量备份,支持本地与对象存储(MinIO/S3)双目的地。
- PITR(Point-In-Time Recovery):可恢复到任意时间点。
- 备份策略可配置(如每日凌晨全量、WAL 持续归档)。
4.5 多租户与安全
- 预置 dbrole_admin / dbrole_readonly 等角色模板,用户/数据库声明式创建。
- 支持 SCRAM 认证、TLS 传输加密、HBA 规则细粒度控制。
- 密码统一在
pigsty.yml中管理,./configure -g可随机生成强密码。
4.6 PostgreSQL 包管理器 pig
Pigsty 自带 pig 命令行工具(PostgreSQL Extension Manager),可像 apt/yum 一样安装 PG 扩展:pig install pgvector、pig install pg17 等,自动处理版本与依赖。pig 的全部子命令与实测回显见 《Pigsty v4.5.0 常用 CLI 命令与工具详解》。
五、快速开始(最小可用示例)
Pigsty 提供两种部署形态,适用不同场景:
| 形态 | 命令 | 适用 | 说明 |
|---|---|---|---|
| Docker 单节点 | cd docker && make launch | 本地体验、开发测试 | 单实例内含 systemd,跑完整 PG + 监控栈,非高可用 |
| 裸机/虚机 Ansible | ./configure && ./deploy.yml | 生产环境 | 多节点高可用集群,需 3+ 节点(Etcd 至少 3 节点) |
Docker 单节点形态的完整部署步骤见 《Pigsty v4.5.0 Docker Compose 部署指南》。
Docker 形态部署完成后,可通过以下地址访问(密码由 make pass 查看):
| 服务 | 地址 | 默认凭据 |
|---|---|---|
| Web 门户 | http://<host>:8080 | — |
| Grafana | http://<host>:8080/ui | admin / grafana_admin_password |
| PostgreSQL | psql postgres://dbuser_dba:<pg_admin_password>@<host>:5432/postgres | pg_admin_password |
⚠️ Docker 单节点形态不提供跨节点高可用,仅用于体验与开发;生产请用裸机/虚机 Ansible 形态部署 3 节点以上集群。
六、适用场景与限制
6.1 适用场景
- 自建 PostgreSQL 生产集群:不想用云 RDS、需要数据完全自主可控的团队。
- 多模态数据库需求:需要 PG + 时序 + 地理空间 + 向量 + 搜索等多扩展共存,不想维护多个数据库。
- 需要完整监控开箱即用:团队没有精力自研 PG 监控面板与告警规则。
- 私有化/内网环境:不能上公有云的政企、金融场景。
6.2 限制与边界
- 学习曲线:Pigsty 打包了大量组件,配置项多,首次上手需要理解 Ansible inventory 与各组件职责。
- 资源要求:生产 3 节点集群每节点建议 4C8G 起步,完整监控栈有一定资源开销。
- Docker 非高可用:单实例形态只是开发体验,不能当生产用。
- 不跨云托管:Pigsty 是部署工具,不是托管服务,升级、容量规划仍需 DBA 介入。
七、同类选型对比
7.1 量化对比表
| 维度 | Pigsty v4.5.0 | 原生 PG + 自搭监控 | Crunchy Data | CloudNativePG |
|---|---|---|---|---|
| 定位 | PG 全栈发行版(部署+HA+监控+备份) | 仅数据库内核,外围自搭 | 商业 PG 发行版 + 支持服务 | Kubernetes Operator(CNCF) |
| License | Apache-2.0 | PostgreSQL License | 商业 / 部分 Apache | Apache-2.0 |
| 高可用 | Patroni+Etcd+HAProxy,RTO<45s | 自行搭建(repmgr/Patroni) | Crunchy HA(Patroni 系) | 内置流复制+自动故障转移 |
| 监控 | Grafana+VM+VL,3000+ 指标,预置面板 | 自行装 Prometheus + 面板 | Crunchy 监控套件(商用) | Prometheus + 社区面板 |
| 备份恢复 | pgBackRest + PITR | 自行装 pgBackRest | pgBackRest(商用增强) | 内置备份 + PITR |
| 扩展生态 | 600+ 内置,pig 一键装 | 自行编译安装 | 商业支持的扩展集 | 按需安装 |
| 部署方式 | Ansible(裸机/虚机)+ Docker | 手动/脚本 | Ansible/Operator | Kubernetes |
| 上手成本 | 中(学 Ansible + 组件) | 高(全自研) | 中(付费含支持) | 中(需 k8s) |
| 适用规模 | 中小到大型自建集群 | 任意 | 中大型企业 | 云原生 k8s 环境 |
| 商业支持 | 社区 + 可选商业 | 社区 | 官方商业支持 | 社区 + 多家商业 |
7.2 选型建议
- 选 Pigsty:你需要「一个工具搞定 PG 全生命周期」,团队有一定 Linux/Ansible 基础,想要开箱即用的监控与高可用,又不想付商业 license 费。
- 选原生 PG + 自搭:你有成熟 DBA 团队、对每个组件都有强定制需求、且有精力自研监控与 HA。
- 选 Crunchy Data:你需要官方商业支持、SLA 与企业级安全合规,预算充足。
- 选 CloudNativePG:你已经在 Kubernetes 上运行工作负载,希望 PG 也以 Operator 方式云原生管理。
💡 技术拓展:PostgreSQL 发行版与 Operator 的关系。发行版(Pigsty/Crunchy)解决「怎么把 PG + 外围装好」,面向裸机/虚机;Operator(CloudNativePG/Zalando)解决「怎么在 k8s 里声明式管理 PG 集群」,面向容器平台。两者不互斥——Pigsty 的 PG 实例也可以跑在容器里,但编排层仍是 Ansible 而非 k8s。如果你的基础设施是 k8s,优先看 Operator;如果是裸机/虚机,优先看发行版。
八、参考链接
- 官方仓库:https://github.com/pgsty/pigsty
- 官方文档(国际):https://pigsty.io/
- 官方文档(中文):https://pigsty.cc/
- 在线演示:https://demo.pigsty.cc/
- 扩展目录:https://pigsty.io/ext/
- Apache-2.0 许可证说明:https://pigsty.io/docs/about/license/