这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

运维 SOP 索引

面向新手用户的 Pigsty 与 PostgreSQL 运维文档索引:按常见任务找到应读文档。

    上手路线

    顺序要解决的问题入口
    1Pigsty 由哪些模块组成?积木式架构PGSQL 架构PGSQL 集群模型
    2怎么先跑起来?快速上手图形界面快速上手 PostgreSQL
    3配置文件该怎么看?声明式配置配置清单配置参数
    4生产部署要准备什么?架构规划资源准备管理机制
    5怎么部署多节点集群?生产部署执行剧本PGSQL 剧本
    6日常怎么管库?PGSQL 日常管理集群管理用户管理数据库管理
    7怎么验证可靠性?PG 高可用Patroni 管理备份恢复恢复操作

    任务索引

    任务先看操作入口
    准备服务器、磁盘、网络、VIP资源准备架构规划Linux 兼容性生产部署
    准备 SSH、Sudo、管理用户管理机制生产部署
    本地或云上搭沙箱沙箱环境VagrantTerraform
    单机体验快速上手./configure -g./deploy.yml
    多节点生产部署部署生产部署./deploy.yml./pgsql.yml
    离线环境部署离线安装软件仓库管理
    选择配置模板配置模板模板列表./configure -c <template>
    规划集群名、库名、用户名PGSQL 集群模型pg_clusterpg_databasespg_users
    创建数据库集群集群实例配置集群管理./pgsql.yml -l <cluster>
    新增业务用户用户/角色配置用户管理./pgsql-user.yml -l <cluster>
    新增业务数据库数据库配置数据库管理./pgsql-db.yml -l <cluster>
    配置访问入口服务/接入pg_servicespg_default_services
    修改 HBAHBA 配置HBA 管理
    主从切换Patroni 管理patronictl switchover
    HA 故障演练PG 高可用RPORTO3坏2应急处理
    配置 VIPHA 服务接入配置 PG VIP
    配置备份策略备份策略备份管理命令
    做 PITR 时间点恢复时间点恢复恢复操作
    误删数据、表、库误删处理手工恢复
    克隆恢复集群克隆数据库集群Fork 实例
    使用 MinIO 存备份MINIO 模块MinIO 配置备份仓库
    查看监控告警监控系统PGSQL 监控PGSQL 仪表盘
    排查数据库故障PGSQL 常见问题故障排查组件管理
    扩容、缩容 PG 集群集群实例配置集群管理
    升级 PostgreSQL版本升级内核版本
    安装或启用扩展扩展插件扩展管理
    迁移已有数据库数据迁移迁移剧本
    做安全加固安全考量访问控制CA 与证书
    管理域名与 Web 入口域名管理Nginx 管理
    维护基础设施INFRA 管理预案infra.ymlinfra-rm.yml
    维护 EtcdETCD 配置ETCD 管理ETCD FAQ
    部署应用模板应用Docker 模块./app.yml

    准备与部署

    生产部署先看 架构规划资源准备。这两篇解决节点数量、磁盘、文件系统、网络、VIP、域名、软件源这些问题。

    机器准备好以后,看 管理机制:管理用户、免密 SSH、Sudo、可达性、防火墙都在这里。系统版本和架构看 Linux 兼容性

    第一次安装走 快速上手。多节点生产环境走 生产部署。没有互联网访问时,看 离线安装软件仓库管理

    模板选择不用一开始想太复杂:单机默认看 meta;三节点 HA 看 ha/trio;更完整的 HA 看 ha/full;强调一致性看 ha/safe;资源紧张时看 ha/dualha/simu


    命名与配置

    先分清三个名字:集群名、数据库名、服务名。

    pg_cluster 是 Pigsty 管理 PostgreSQL 集群的顶层名字,会影响实例名、服务名、备份 stanza、监控标签和很多文件路径。它不是一个可以随手改的显示名。命名规则看 PGSQL 集群模型;不同实例角色看 集群实例配置;服务名和连接入口看 服务/接入

    数据库名和用户名是 PostgreSQL 里的逻辑对象。库名看 数据库配置数据库管理;用户和角色看 用户/角色配置用户管理;权限模型看 访问控制ACL 配置

    经验上,集群名用小写字母、数字、短横线,例如 pg-metapg-testpg-user-prod。数据库对象名用 snake_case,别用中文、空格、大小写混用和 SQL 关键字。更完整的命名背景可以读 数据库集群管理概念与实体命名规范PostgreSQL 规约(2024版)

    配置变更遵循一个习惯:先改 pigsty.yml,再执行对应剧本。配置结构看 声明式配置配置清单;参数含义看 配置参数参数列表;剧本入口看 执行剧本剧本列表


    日常管理

    数据库管理的总入口是 PGSQL 日常管理

    操作文档
    创建、扩容、缩容、下线、克隆集群集群管理
    创建、修改、删除业务用户用户管理
    创建、修改、删除、重建数据库数据库管理
    刷新和排查 HBAHBA 管理
    查看 HA 状态、切换、重启、重做从库Patroni 管理
    管理连接池Pgbouncer 管理
    启停 PostgreSQL、Patroni、Pgbouncer、Exporter组件管理
    管理备份、校验、清理、恢复pgBackRest 管理
    配置备份、Vacuum、Analyze 等定时任务定时任务
    升级版本与扩展版本升级扩展管理

    PostgreSQL 例行维护的背景文章可以看 PostgreSQL 例行维护


    高可用演练

    理解 HA 先看 PG 高可用。不要只看“能不能自动切换”,还要看 RPORTO:前者是最多能丢多少数据,后者是多久恢复服务。

    接入层看 HA 服务接入服务/接入;组件关系看 PGSQL 架构;Etcd 的角色看 ETCD 配置

    演练入口集中在三处:主动切换看 Patroni 管理;服务状态看 组件管理;极端故障看 3坏2应急处理。需要 VIP 时,再看 配置 PG VIP

    背景文章可读 PostgreSQL 高可用到底怎么做?


    备份与恢复

    PITR 先读 时间点恢复,再读 工作原理实现架构策略权衡典型场景

    配置和维护看 备份恢复备份策略备份机制备份仓库备份管理命令

    真正恢复时,自动方式看 恢复操作,手工演练看 手工恢复。误删数据、表、库,看 误删处理。不想直接动原集群时,先看 克隆数据库集群Fork 实例

    恢复前至少确认四件事:目标时间点或恢复点是否明确;备份和 WAL 是否连续;业务是否已经停写;是在原集群恢复,还是先拉一个新集群验数据。

    背景文章可读 备份恢复手段概览PgBackRest2中文文档


    监控与排障

    监控总览看 监控系统。入口和域名看 图形界面。数据库指标、日志、告警看 PGSQL 监控PGSQL 仪表盘

    非数据库模块的监控分别看 INFRA 监控NODE 监控ETCD 监控MINIO 监控

    排障先看 PGSQL 常见问题,再看 故障排查。连接认证问题看 HBA 管理;HA 状态问题看 Patroni 管理;进程状态问题看 组件管理

    PostgreSQL 通用排障文章:PG 服务器日志常规配置PostgreSQL 宏观查询优化之 pg_stat_statements故障档案:PostgreSQL 事务号回卷查找虚假索引表膨胀治理


    扩缩容、升级、迁移

    容量和拓扑设计看 架构规划资源准备PGSQL 集群模型

    按模块扩缩容时,PGSQL 看 集群管理;NODE 看 NODE 管理;ETCD 看 ETCD 管理;MINIO 看 MINIO 管理;INFRA 看 INFRA 管理预案;REDIS 看 REDIS 管理

    升级 PostgreSQL 看 版本升级内核版本。扩展相关看 扩展插件扩展管理扩展仓库软件包别名

    迁移已有 PostgreSQL 看 数据迁移PGSQL 迁移剧本。低停机迁移的思路可以参考 迁移不停机

    需要水平扩展时,再读 Citus 集群部署Citus 内核分支


    安全与入口

    部署安全先看 安全考量,安全模型看 安全合规。PostgreSQL 权限看 访问控制ACL 配置;认证规则看 HBA 配置HBA 管理

    证书看 CA 与证书。域名、Nginx、Web 入口看 域名管理Nginx 管理

    生产环境至少要改默认密码,收紧 HBA,明确业务用户和管理用户边界,确认备份仓库的保留、加密和访问权限。


    应用接入

    应用连接数据库前,先读 服务/接入快速上手 PostgreSQL。连接池行为看 Pgbouncer 管理

    使用 Pigsty 托管数据库、再部署无状态应用时,看 应用模板Docker 模块


    常见误区

    误区该看哪里
    pg_cluster 当成可以随便改的显示名PGSQL 集群模型
    把数据库名、集群名、服务名混为一谈命名与配置服务/接入
    只部署主库,不演练恢复手工恢复恢复操作
    以为 HA 就一定不丢数据RPORTO
    第一次故障切换直接在生产做沙箱环境3坏2应急处理
    忽略 EtcdETCD 模块ETCD FAQ
    只看备份成功,不验证恢复备份恢复克隆数据库集群
    改 HBA、证书、服务入口时没有回滚路径安全合规HBA 管理Nginx 管理

    延伸阅读

    主题文章
    命名与实体模型数据库集群管理概念与实体命名规范
    PostgreSQL 使用规约PostgreSQL 规约(2024版)
    高可用PostgreSQL 高可用到底怎么做?
    备份恢复备份恢复手段概览PgBackRest2中文文档
    日常维护PostgreSQL 例行维护
    连接池Pgbouncer 快速上手
    查询与负载PostgreSQL 宏观查询优化之 pg_stat_statementsPostgreSQL 的 KPI
    日志与故障PG 服务器日志常规配置故障档案:PostgreSQL 事务号回卷
    生态与扩展PostgreSQL 正在吞噬数据库世界小猪骑大象:PG内核与扩展包管理神器