在 PostgreSQL 集群中实现故障转移(Failover)是构建高可用性(High Availability, HA)架构的核心环节。 需要明确的是:PostgreSQL 原生原生支持主从流复制(Streaming Replication)和手动提升备库(Promote),但并不自带“自动故障转移(Automatic Failover)”功能。要实现自动故障转移,必须依赖第三方高可用组件。 以下是实现 PostgreSQL 故障转移的完整指南,分为基础原理、主流自动故障转移工具、客户端路由以及最佳实践四个部分。 --- 一、 故障转移的基础原理 故障转移的核心步骤如下: 1. 故障检测:确认主节点(Primary)已经宕机或无法提供服务。 2. 选主(Election):在多个备节点(Standby)中,挑选出一个数据最新、状态最健康的节点。 3. 提升(Promotion):将选出的备节点提升为新的主节点,使其可读可写。 4. 重新配置(Reconfiguration):将其他存活的备节点指向新的主节点,重新建立复制关系。 5. 流量切换(Routing):通知应用端(客...