HA 集群
Patroni 是 PostgreSQL 高可用的事实标准:它掌管每个
postmaster 的生命周期、在成员间流式复制、并在 leader 失联时执行自动 failover。pgcli
把 Patroni 作为独立的顶级命令 pg ha 暴露出来——它是一种独立的模式,既不是普通的 pg
实例,也不是用 pg addon install 安装的插件。
关于归属。 Patroni 相关页面原先挂在 插件 Addons 下。现在它们独立成 HA 集群这一节,因为
pg ha并不通过插件系统安装——插件索引里提到它只是为了方便 检索。etcd DCS 与 HAProxy 负载均衡仍是插件页面(etcd、 HAProxy);本节会在相关处链回去。
子页面
| 页面 | 内容 |
|---|---|
| Patroni HA | pg ha 命令集:创建、status、switchover/failover、pause、跨主机成员、密码、namespace 与 DCS 布局 |
| 动态配置 | pg ha edit-config / pg ha ctl —— 存在 DCS 里的运行时配置,以及为什么它绝不重建容器 |
| REST API | 每个成员的 Patroni REST API:健康检查、leader 重定向、HAProxy 探测什么 |
| HA 集群扩展 | 在集群范围内安装/卸载 PostgreSQL 扩展(滚动修改 shared_preload_libraries) |
| 集群备份 | pg backup setup + pg ha snapshot —— stanza、WAL 归档到 S3、跨主机的备份 SSH 通道 |
| 集群恢复 | pg ha restore —— 走自定义 bootstrap 机制的集群 PITR、leader 本机性预检、恢复后的重新基线 |
| Exec / psql | pg ha exec / pg ha psql —— 直连 leader 或任意成员跑 SQL,免 dsn、免进容器 |
| 示例:HA 集群 + 自签 CA 的 MinIO | 实测通过的端到端流程:集群备份到一台服务自带证书的 MinIO,全程在完全隔离的第二套环境里 |
| 生成证书 | pg cert —— 签发带域名与 IP SAN 的自签证书,服务于任何不想走 CA 又需要 TLS 的场合(开发测试服务器、内部端点,或服务自带证书的 MinIO):flag 一览,以及单张自签叶证书如何充当自己的信任锚 |
| S3 存储高可用 | 让仓库本身(MinIO/silo)也容错:pgcli 暴露的 SNSD 与 MNSD 两种形态及为何只有这两种,加上在数据目录之下用 ZFS —— 单机 raidz、分布式集群每节点各自建池、异构节点 |
典型路径
相关
- 插件:etcd(DCS)、HAProxy (可扛故障切换的稳定客户端端点,可选读写分离)、MinIO(备份所在的 S3 仓库)
- 恢复 → Patroni 集群:与单实例恢复共通的 PITR 基础
- Failover:副本提升:非 Patroni 的单副本提升路径(
pg replica) - Namespace 隔离 —— scope、stanza、容器名都带 namespace 前缀
以 pgcli HA 模式运行 Patroni 版 PostgreSQL 高可用——自动故障切换、switchover,基于 DCS 的集群
存储在 DCS 中的所有可动态配置参数参考
Patroni REST API 端点参考:健康检查、监控、集群管理
在 Patroni 管理的 HA 集群中安装和管理 PostgreSQL 扩展
Patroni HA 集群的 pgBackRest 备份:backup setup、S3 仓库与 WAL 归档、pg ha snapshot 快照操作,以及副本 LSN 卡住时的 reinit 修复
用 pg ha restore 为 Patroni HA 集群做时间点恢复(PITR):自定义 bootstrap 机制、leader 本机性预检、端到端操作流程,以及恢复之后的重新基线步骤
用 pg ha exec 和 pg ha psql 对 Patroni HA 集群执行 SQL:从 DCS 零配置解析 leader、免手拼 dsn、免进成员容器,并可用 –member 指定只读副本或跨主机节点
完整且实测通过的端到端流程:单 member 的 Patroni 集群,备份到一台对外提供自带(自签)域名证书的 MinIO 插件——全程运行在一个完全隔离的 pgcli 环境中
pg cert 签发带域名与 IP SAN 的自签证书,服务于任何不想走 CA 又需要 TLS 的场合——开发测试服务器、内部端点、对外提供自带 TLS 证书的 MinIO。flag 一览,写出的内容(单张自签叶证书,不是一条链),以及它如何充当自己的信任锚
让 pgBackRest 背后的 MinIO/silo 对象存储也高可用:pgcli 暴露的四种部署形态(SNSD/SNMD/MNSD/MNMD)、原生多盘与 ZFS 磁盘冗余层的取舍,以及「每台主机多块盘的分布式集群」的两条路