# 概念

> 理解 Pigsty 的核心概念、架构设计与设计理念，掌握高可用、备份恢复、安全合规等关键能力。

---

LLMS 索引： [llms.txt](/zh/llms.txt)

---

Pigsty 是一个可移植、可扩展的开源 PostgreSQL 发行版，用于在本地环境中构建生产级数据库服务，方便进行声明式配置和自动化。它拥有庞大的生态系统，提供了一整套工具、脚本和最佳实践，让 PostgreSQL 真正达到企业级 RDS 的服务水准。

Pigsty 名字源自 <strong>P</strong>ostgreSQL <strong>I</strong>n <strong>G</strong>reat <strong>STY</strong>le，也可理解为 <strong>P</strong>ostgres，<strong>I</strong>nfras，<strong>G</strong>raphics，<strong>S</strong>ervice，<strong>T</strong>oolbox，it's all <strong>Y</strong>ours —— 属于您的 PostgreSQL 图形化自建工具箱。您可以在 [**GitHub**](https://github.com/pgsty/pigsty) 上找到源代码，访问 [**官方文档**](https://pigsty.io) 了解更多信息，或在 [**在线演示**](https://demo.pigsty.cc) 中体验 [**Web 界面**](/docs/setup/webui)。

[![pigsty-banner](/img/pigsty/banner.png)](https://pigsty.cc)


----------------

## 为什么需要 Pigsty，它能做什么？

PostgreSQL 是一个足够完美的数据库内核，但它需要更多工具与系统的配合才能成为一个足够好的数据库服务。在生产环境中，您需要管理数据库的方方面面：高可用、备份恢复、监控告警、访问控制、参数调优、扩展安装、连接池化、负载均衡……

如果这些复杂的运维工作都能自动化处理，是不是会更容易一些？这正是 Pigsty 诞生的原因。

Pigsty 为您提供：

- **开箱即用的 PostgreSQL 发行版**

  Pigsty 整合了 PostgreSQL 生态中的 [**575 个扩展插件**](https://pigsty.cc/ext/list/)，提供开箱即用的分布式、时序、地理、空间、图、向量、搜索等多模态数据库能力。从内核到 RDS 发行版，在 EL/Debian/Ubuntu 下提供 14 - 18 版本的生产级数据库服务。

- **故障自愈的高可用架构**

  基于 Patroni、Etcd 和 HAProxy 打造的 [**高可用架构**](/docs/concept/ha)，让硬件故障自动切换，流量无缝衔接。主库故障恢复时间 RTO < 45s，数据恢复点 RPO ≈ 0。您可以在无需应用配合的情况下滚动维护升级整个集群。

- **完整的时间点恢复能力**

  基于 pgBackRest 与可选的 Silo 对象存储集群，提供开箱即用的 [**PITR 时间点恢复**](/docs/concept/pitr) 能力。让您可以回到恢复窗口内的任意时间点，为软件缺陷与人为删库兜底。

- **灵活的服务接入与流量管理**

  通过 HAProxy、Pgbouncer、VIP 提供灵活的 [**服务接入**](/docs/pgsql/misc/svc) 模式，实现读写分离、连接池化、自动路由。交付稳定可靠、自动路由、事务池化的高性能数据库服务。

- **惊艳的可观测性**

  基于 Victoria 与 Grafana 的可观测性技术栈，提供无与伦比的 [**监控最佳实践**](/docs/concept/monitor)。超过三千类监控指标描述系统的方方面面，从全局大盘到单个对象的增删改查都能一览无余。

- **声明式的配置管理**

  遵循 [**基础设施即代码**](/docs/concept/iac) 的理念，使用声明式配置描述整个环境。您只需告诉 Pigsty "想要什么样的数据库集群"，无需操心具体如何实现，系统会自动调整到期望状态。

- **模块化的架构设计**

  采用模块化 [**架构**](/docs/concept/arch) 设计，可自由组合以适应不同场景。除了核心的 PostgreSQL 模块外，还提供 Redis、MINIO（Silo）、Etcd 等可选模块，以及对多种 PG 兼容内核与模式的支持。

- [**扎实的安全最佳实践**](/docs/concept/sec/)

  采用业界领先的安全最佳实践：[**自签名 CA**](/docs/concept/sec/ca) 签发证书加密通信，AES 加密备份，SCRAM-SHA-256 口令哈希，开箱即用的 [**ACL 模型**](/docs/concept/sec/ac)，遵循最小权限原则的 [**HBA 规则集**](/docs/concept/sec/auth)，确保数据安全。

- **简单易用的部署方案**

  所有依赖被预先打包，可在无互联网访问的环境中一键安装。本地沙箱环境可运行在 1核2G 的微型虚拟机中，提供与生产环境完全一致的功能模拟。提供基于 Vagrant 的本地沙箱与基于 Terraform 的云端部署方案。


----------------

## Pigsty 不是什么

Pigsty 并不是传统的、包罗万象的 PaaS（平台即服务）系统。

- **Pigsty 不提供基础硬件资源**。它运行在您提供的节点之上，无论是裸金属、虚拟机还是云主机，但它本身不创建或管理这些资源（尽管提供了 Terraform 模板来简化云资源的准备）。

- **Pigsty 不是容器编排系统**。它直接运行在操作系统之上，不需要 Kubernetes 或 Docker 作为基础设施。当然，它可以与这些系统共存，并提供 Docker 模块来运行无状态应用。

- **Pigsty 不是通用的数据库管理工具**。它专注于 PostgreSQL 及其生态，虽然也支持 Redis、Etcd、Silo 等周边组件，但核心始终是围绕 PostgreSQL 构建的。

- **Pigsty 不会锁定您**。它基于开源组件构建，不修改 PostgreSQL 内核，不引入专有协议。您随时可以脱离 Pigsty 继续使用管理好的 PostgreSQL 集群。

Pigsty 不限制您应该或不应该如何构建数据库服务。例如：

- Pigsty 为您提供了良好的参数默认值和配置模板，但您可以覆盖任何参数。
- Pigsty 提供了声明式 API，但您依然可以使用底层工具（Ansible、Patroni、pgBackRest 等）进行手动管理。
- Pigsty 可以管理完整的生命周期，也可以只使用其中的监控系统来观测现有的数据库实例或 RDS。

Pigsty 提供的抽象层次不同于硬件层面，它工作在数据库服务层面，聚焦于如何让 PostgreSQL 以最佳状态交付价值，而不是重新发明轮子。


----------------

## PostgreSQL 部署方式的演进

要理解 Pigsty 的价值，让我们回顾一下 PostgreSQL 部署方式的演进历程。

### 手工部署时代

在传统的部署方式中，DBA 需要手工安装配置 PostgreSQL，手工设置复制，手工配置监控，手工处理故障。这种方式的问题显而易见：

- **效率低下**：每个实例都需要重复大量手工操作，容易出错。
- **缺乏标准化**：不同 DBA 配置的数据库可能千差万别，难以维护。
- **可靠性差**：故障处理依赖人工介入，恢复时间长，容易出现人为失误。
- **观测性弱**：缺乏统一的监控体系，问题发现和定位困难。

### 托管数据库时代

为了解决这些问题，云厂商提供了托管数据库服务（RDS）。云 RDS 确实解决了部分运维问题，但也带来了新的挑战：

- **成本高昂**：托管服务通常收取硬件成本数倍到十几倍的"服务费"。
- **供应商锁定**：迁移困难，受制于特定云平台。
- **功能受限**：无法使用某些高级特性，扩展插件受限，参数调整受限。
- **数据主权**：数据存储在云端，自主可控性降低。

### 本地 RDS 时代

Pigsty 代表了第三种方式：在本地环境中构建媲美甚至超越云 RDS 的数据库服务。

Pigsty 结合了前两种方式的优点：

- **自动化程度高**：一键部署，自动配置，故障自愈，像云 RDS 一样便捷。
- **完全自主可控**：运行在您自己的基础设施上，数据完全掌握在自己手中。
- **成本极低**：以接近纯硬件的成本运行企业级数据库服务。
- **功能完整**：无限制地使用 PostgreSQL 的全部能力和生态扩展。
- **开放架构**：基于开源组件，无供应商锁定，可随时迁移。

这种方式特别适合：

- **私有云与混合云**：需要在本地环境中运行数据库的企业。
- **成本敏感型用户**：希望降低数据库 TCO 的组织。
- **高安全要求场景**：需要完全自主可控的关键数据。
- **PostgreSQL 深度用户**：需要使用高级特性和丰富扩展的场景。
- **开发与测试**：需要在本地快速搭建与生产环境一致的数据库。


----------------

## 接下来

现在您已经了解了 Pigsty 的基本概念，可以：

- 查看 [**系统架构**](/docs/concept/arch) 了解 Pigsty 的模块化设计
- 了解 [**集群模型**](/docs/concept/model) 理解 Pigsty 如何组织数据库集群
- 学习 [**高可用**](/docs/concept/ha) 机制掌握故障自愈的原理
- 探索 [**时间点恢复**](/docs/concept/pitr) 了解如何应对数据误删
- 研究 [**服务接入**](/docs/pgsql/misc/svc) 理解如何稳定交付数据库服务
- 体验 [**基础设施即代码**](/docs/concept/iac) 感受声明式配置的魅力
- 或直接开始 [**快速上手**](/docs/setup/install) 在几分钟内部署您的第一个 Pigsty 环境

---

本节页面：

- [积木式架构](/zh/docs/concept/arch/): Pigsty 的模块化架构介绍 —— 声明式组合，按需定制，自由部署。
- [集群模型图](/zh/docs/concept/model/): Pigsty 是如何将不同种类的功能抽象成为模块的，以及这些模块的逻辑模型，实体关系图。
- [声明式配置 —— 基础设施即代码（IaC）](/zh/docs/concept/iac/): Pigsty 使用基础设施即代码（IaC）的理念管理所有组件，针对大规模集群提供声明式管理能力。
- [PG 高可用](/zh/docs/concept/ha/): Pigsty 使用 Patroni 实现了 PostgreSQL 的高可用，确保主库不可用时自动进行故障转移，由从库接管。
- [时间点恢复 —— 数据库的时间机器（PITR）](/zh/docs/concept/pitr/): 高可用解决"机器坏了"，时间点恢复解决"数据错了"。Pigsty 基于 pgBackRest 提供开箱即用的 PITR 能力，让您可以将集群回滚至恢复窗口内的任意时刻，为人为失误与软件缺陷兜底。
- [监控系统](/zh/docs/concept/monitor/): Pigsty 的监控系统是如何架构与实现的，被监控的目标对象又是如何被自动纳入管理的。
- [安全合规](/zh/docs/concept/sec/): Pigsty 以安全即代码的方式管理认证、授权、加密、审计与备份恢复，并提供从默认配置到生产加固的清晰路径。
