PostgreSQL 18 中文参考文档(未翻译部分保留英文)🌐 切换到英文原版 →

26.3. 故障转移 #

当主服务器遭遇硬件损坏或系统宕机时,应当启动故障转移流程将备用服务器提升为新的主库:

pg_ctl promote -D /usr/local/pgsql/data

或者在数据库会话中调用 SQL 函数:

SELECT pg_promote();

在多节点架构中,防范脑裂(Split-Brain)至关重要。必须具备 STONITH(隔离故障节点)机制,确保原主库在被判定宕机后绝不能在网络恢复时继续以主库身份接纳写操作。

在故障转移发生后,原主库在修复重新上线时,其数据状态很可能已经与新主库发生了微小分叉。借助官方工具 pg_rewind,能够在线对比两个实例的时间线分叉点,以物理块级比对将旧主库快速回退对齐到新主库的历史位点,随后将其重新作为备库加入集群,省去耗时数小时的重新全量拉取全备。