模块:PGSQL

使用 Pigsty v4.5 声明、部署、接入、监控、备份与管理 PostgreSQL 集群。

PGSQL 是 Pigsty 的核心模块:通过 Ansible 清单声明 PostgreSQL 集群,以 Patroni 与 etcd 提供高可用编排,以 pgBackRest 提供备份/PITR,并通过 HAProxy、VIP、DNS、PgBouncer 与完整可观测性栈提供数据库服务。

本页按 Pigsty v4.5.0 源码组织入口。具体默认值只在 参数参考 中维护,避免在模块首页复制一份会漂移的参数快照。


建模与配置

  • 集群模型:集群、实例、身份与角色。
  • 架构:Patroni、etcd、服务接入与可观测性关系。
  • 集群配置:主库、副本、离线实例、同步提交、备份集群、延迟集群与 Citus。
  • 内核:PostgreSQL 大版本、发行版与软件包选择。
  • 用户数据库HBAACL:业务对象与访问控制。
  • 服务接入:读写/只读服务、HAProxy、VIP、DNS 与连接池。
  • 扩展目录:当前打包的 575 个扩展及平台覆盖。

部署与管理

任务入口
初始化集群或添加实例集群管理 · pgsql.yml
创建或变更用户用户管理 · pgsql-user.yml
创建或变更数据库数据库管理 · pgsql-db.yml
HBA 与参数变更HBA 管理 · 组件管理
Patroni 切换、维护与故障处理Patroni 管理
扩展安装、创建、升级与移除扩展管理
外部实例监控接入pgsql-monitor.yml
迁移准备迁移 · pgsql-migration.yml
移除实例或集群安全移除流程 · pgsql-rm.yml

pgsql.ymlpgsql-user.ymlpgsql-db.yml 等真实执行会修改目标环境;pgsql-rm.yml 默认可能删除数据与备份。执行前先核对精确集群/节点与近期备份;移除操作还必须由操作者输入并确认精确目标。


备份与恢复

  • 备份与恢复总览:恢复能力、边界与入口。
  • 机制策略:基础备份、WAL、恢复窗口与保留策略。
  • 仓库:本地、S3/Silo 与其他 pgBackRest 仓库。
  • 日常管理:备份状态、检查、调度与清理。
  • 恢复操作:集群级 pgsql-pitr.yml、单节点 pig pitr 和低层 pig pb restore
  • 手工演练:在可丢弃沙箱中分阶段验证 PITR。

恢复是破坏性操作;生产环境必须保留独立、近期且验证过的备份,并把停服、恢复、数据验证、时间线提升、DCS 重建、副本重建和新全量备份当作不同关卡。


监控

当前源码 files/grafana/pgsql 包含 29 个 PostgreSQL/PGCAT 仪表盘,覆盖全局、集群、实例、数据库、表、查询、会话、事务、复制、服务、PgBouncer、PITR 与告警。


参数组

PGSQL 参数参考 是 v4.5.0 默认值与语义的唯一文档入口:

  • PG_ID:集群/实例身份。
  • PG_BUSINESS:用户、数据库、服务等业务对象。
  • PG_INSTALL:内核、软件包与扩展。
  • PG_BOOTSTRAP:Patroni 引导、复制与数据库初始化。
  • PG_PROVISION:库内对象与权限置备。
  • PG_BACKUP:pgBackRest 与备份仓库。
  • PG_ACCESS:PgBouncer、服务、VIP 与 DNS。
  • PG_MONITOR:exporter、监控注册与指标采集。
  • PG_REMOVE:移除保险与清理范围。

延伸阅读

根据需求场景选择合适的实例与集群类型,配置出满足需求的 PostgreSQL 数据库集群。

分离读写操作,正确路由流量,稳定可靠地交付 PostgreSQL 集群提供的能力。

PostgreSQL 身份认证、访问控制、加密通信、数据保护与安全运维入口。

数据库日常管理任务标准操作指南(SOP)

配置备份策略与备份仓库,管理备份,执行时间点恢复:pgBackRest 引擎与 Pigsty 封装层的完整实操手册。

如何将现有的 PostgreSQL 集群以最小的停机时间迁移至新的、由 Pigsty 管理的 PostgreSQL 集群?

如何去完成单个任务。每个任务页面是一般通过给出若干步骤展示如何执行完成某事。

Pigsty 监控系统架构概览,以及如何监控现存的 PostgreSQL 实例?

Pigsty 为 PostgreSQL 提供了诸多开箱即用的 Grafana 监控仪表盘

Pigsty PGSQL 模块提供的完整监控指标列表与释义

PGSQL 模块提供的 PostgreSQL 相关配置参数详解

如何使用 ansible 剧本来管理 PostgreSQL 集群

使用 Pigsty 预置的四种场景化 Patroni 模版,或者基于这些模板自定义您的配置模板

如何在 Pigsty 中使用其他 PostgreSQL 内核分支?例如 Citus,Babelfish,IvorySQL,PolarDB 等