概述
Pigsty 是一个可移植、可扩展的开源 PostgreSQL 发行版,用于在本地环境中构建生产级数据库服务,方便进行声明式配置和自动化。它拥有庞大的生态系统,提供了一整套工具、脚本和最佳实践,让 PostgreSQL 真正达到企业级 RDS 的服务水准。
Pigsty 名字源自 PostgreSQL In Great STYle,也可理解为 Postgres, Infras, Graphics, Service, Toolbox, it’s all Yours —— 一切皆为您所拥有的 PostgreSQL 完整解决方案。您可以在 GitHub 上找到源代码,访问 官方文档 了解更多信息,或在 在线演示 中体验监控系统。
一分钟了解 Pigsty
如果您只有一分钟,请记住这张图:
flowchart TB
subgraph Features["核心能力"]
direction LR
F1["🎯 开箱即用<br/>440+ 扩展"]
F2["📝 声明式配置<br/>YAML 描述"]
F3["♾️ 故障自愈<br/>RTO < 30s"]
F4["⏰ 时间点恢复<br/>PITR 能力"]
F5["🔒 安全可控<br/>SSL + ACL"]
end
subgraph Cluster["PostgreSQL 高可用集群"]
direction LR
Primary["🟢 Primary"] --> |流复制| Replica1["🔵 Replica"]
Primary --> |流复制| Replica2["🔵 Replica"]
Patroni["Patroni 高可用"] -.-> Primary
HAProxy["HAProxy 负载均衡"] -.-> Replica1
pgBackRest["pgBackRest 备份"] -.-> Replica2
end
subgraph Monitor["可观测性"]
direction LR
M1["Prometheus<br/>3000+ 指标"]
M2["Grafana<br/>30+ 仪表盘"]
end
Features --> Cluster
Cluster --> Monitor
核心价值:让您在自己的服务器上,用云 RDS 的体验,管理 PostgreSQL 数据库。
为什么需要 Pigsty
问题:PostgreSQL 只是个内核
PostgreSQL 是世界上最先进的开源关系型数据库,但它只是一个数据库内核。要在生产环境中使用,您还需要解决:
| 问题 | 您需要 | 传统做法 |
|---|---|---|
| 如何保证高可用? | 主从复制、故障切换 | 手工配置、值班盯守 |
| 数据误删怎么办? | 定时备份、时间点恢复 | 手工编写脚本 |
| 如何监控告警? | 指标采集、仪表盘、告警 | 自建监控系统 |
| 如何控制访问? | 认证、授权、加密 | 逐个配置 |
| 如何批量管理? | 配置管理、版本控制 | 写大量脚本 |
这些问题加在一起,构成了 PostgreSQL 运维的复杂度墙。
解决方案:Pigsty
Pigsty 将这些复杂问题打包成开箱即用的解决方案:
flowchart LR
subgraph Traditional["传统方式"]
direction TB
T0["PostgreSQL 内核"]
T1["+ 高可用脚本"]
T2["+ 备份脚本"]
T3["+ 监控系统"]
T4["+ 安全配置"]
T5["+ ......"]
T6["需要专业 DBA 团队<br/>几周到几个月"]
end
subgraph Pigsty["Pigsty 方式"]
direction TB
P0["PostgreSQL 发行版"]
P1["= 内核 + 高可用"]
P2["+ 备份恢复"]
P3["+ 监控告警"]
P4["+ 安全加固"]
P5["+ 440+ 扩展"]
P6["任何人都能用<br/>10 分钟"]
end
Traditional --> |一键转型| Pigsty
Pigsty 能做什么
八大核心能力
| 能力 | 说明 | 详情 |
|---|---|---|
| 🎯 开箱即用的发行版 | 440+ 扩展,多版本支持 | 分布式、时序、向量、地理空间等能力 |
| ♾️ 故障自愈的高可用 | RTO < 30s, RPO ≈ 0 | Patroni + Etcd + HAProxy |
| ⏰ 时间点恢复能力 | 任意时间点回退 | pgBackRest + 可选 MinIO |
| 🔀 灵活的服务接入 | 读写分离、连接池化 | HAProxy + Pgbouncer + VIP |
| 📊 惊艳的可观测性 | 3000+ 指标,30+ 仪表盘 | Prometheus + Grafana |
| 📝 声明式配置管理 | YAML 描述,幂等执行 | Ansible 驱动的 IaC |
| 🧩 模块化架构设计 | 按需组合,灵活扩展 | PGSQL, INFRA, ETCD, REDIS… |
| 🔒 扎实的安全实践 | 认证、授权、加密、审计 | SSL/TLS, SCRAM, ACL |
一个例子胜过千言万语
假设您需要一个三节点高可用 PostgreSQL 集群。
传统方式:
# 需要在 3 台服务器上分别执行
# 安装 PostgreSQL ...
# 配置 postgresql.conf ...
# 配置 pg_hba.conf ...
# 设置主从复制 ...
# 安装配置 Patroni ...
# 安装配置 Etcd ...
# 安装配置 HAProxy ...
# 安装配置监控 ...
# 配置备份策略 ...
# 大约需要 2-3 天,如果顺利的话
Pigsty 方式:
# pigsty.yml 配置文件,只需要这几行
pg-test:
hosts:
10.10.10.11: { pg_seq: 1, pg_role: primary }
10.10.10.12: { pg_seq: 2, pg_role: replica }
10.10.10.13: { pg_seq: 3, pg_role: replica }
vars:
pg_cluster: pg-test
# 一条命令,10 分钟完成
bin/pgsql-add pg-test
结果:您将获得一个功能完备的高可用集群:
- ✅ 自动故障切换(主库故障 30 秒内恢复)
- ✅ 时间点恢复(可回退到任意历史时间点)
- ✅ 完整监控(3000+ 指标,精美仪表盘)
- ✅ 读写分离(自动路由,负载均衡)
- ✅ 连接池化(Pgbouncer 事务级池化)
- ✅ 安全加固(SSL 加密,密码策略)
Pigsty 不是什么
理解 Pigsty 不做什么,有助于您更好地定位它:
不是 PaaS 平台
Pigsty 不提供硬件资源,它运行在您已有的服务器上(物理机、虚拟机、云主机均可)。
不是容器编排系统
Pigsty 直接运行在操作系统上,不需要 Kubernetes。它追求的是裸金属级别的性能和可控性。
不是通用数据库管理工具
Pigsty 专注于 PostgreSQL 及其生态。虽然也支持 Redis、MinIO 等,但核心始终是 PostgreSQL。
不会锁定您
Pigsty 基于开源组件,不修改 PostgreSQL 内核,不引入专有协议。您随时可以"毕业",继续使用已部署的集群。
PostgreSQL 部署方式的演进
flowchart LR
subgraph Stage1["第一阶段:手工运维"]
direction TB
S1A["DBA 手工安装"]
S1B["手工配置"]
S1C["手工处理故障"]
S1D["手工备份"]
S1A --> S1B --> S1C --> S1D
S1E["❌ 效率低下,重复劳动"]
S1F["❌ 缺乏标准化"]
S1G["❌ 可靠性差,依赖人工"]
end
subgraph Stage2["第二阶段:云托管 RDS"]
direction TB
S2A["☁️ 云厂商托管服务"]
S2B["自动运维 + 高可用 + 备份"]
S2A --> S2B
S2C["❌ 成本高昂 5-10 倍"]
S2D["❌ 供应商锁定"]
S2E["❌ 功能受限"]
S2F["❌ 数据主权失控"]
end
subgraph Stage3["第三阶段:本地 RDS"]
direction TB
S3A["🐘 Pigsty"]
S3B["云 RDS 能力 + 本地控制权"]
S3A --> S3B
S3C["✅ 一键部署,自动化"]
S3D["✅ 完全自主可控"]
S3E["✅ 成本接近纯硬件"]
S3F["✅ 功能完整,无锁定"]
end
Stage1 --> |演进| Stage2 --> |演进| Stage3
与云 RDS 的对比
| 维度 | 云 RDS | Pigsty |
|---|---|---|
| 成本 | 硬件成本 × 5~10 | ≈ 纯硬件成本 |
| 数据主权 | 数据在云端 | 数据在本地 |
| 供应商锁定 | 迁移困难 | 完全开放 |
| 扩展支持 | 受限(通常 <50 个) | 440+ 扩展 |
| 参数调整 | 部分可调 | 完全可控 |
| 高可用 | ✅ 自动 | ✅ 自动 |
| 备份恢复 | ✅ 自动 | ✅ 自动 |
| 监控告警 | ✅ 基础 | ✅ 专业级 |
| 运维复杂度 | 低 | 低(自动化) |
适用场景
Pigsty 特别适合以下场景:
私有云与混合云
需要在本地数据中心或私有云运行数据库的企业。
成本敏感型用户
希望降低数据库 TCO(总拥有成本)的组织。云 RDS 的服务费通常是硬件成本的数倍。
高安全要求场景
需要完全自主可控的关键数据,如金融、政府、医疗等行业。
PostgreSQL 深度用户
需要使用高级特性(如 PostGIS、TimescaleDB、pgvector)和丰富扩展的场景。
开发与测试环境
需要在本地快速搭建与生产环境一致的数据库,用于开发和测试。
成功案例
许多大型组织与核心机构已经在生产环境中长时间使用 Pigsty:
- 最大部署规模:25,000 CPU 核心,220+ PostgreSQL 实例
- 单实例最大规格:64 核 / 512GB 内存 / 3TB NVMe SSD
- 运行时间:5 年以上持续运行
- 可用性战绩:99.999% 以上(经历数十次硬件故障,零数据丢失)
接下来
现在您已经了解了 Pigsty 的基本概念,可以:
- 🔥 快速上手:10 分钟部署您的第一个 Pigsty 环境
- ♾️ 高可用:了解故障自愈的原理
- ⏰ 时间点恢复:学习如何应对数据误删
- 🔒 安全合规:掌握访问控制与加密机制
- 📊 可观测性:体验监控系统的强大
- 📝 声明式配置:理解基础设施即代码的魅力
- 🧩 系统架构:深入了解模块化设计