PostgreSQL 高可用方案
Patroni 是目前最流行的 PostgreSQL 高可用管理方案。
一、概述
PostgreSQL 高可用需要自动故障转移机制。
二、流复制
# 主库
wal_level = replica
max_wal_senders = 5
# 从库
primary_conninfo = 'host=master port=5432 user=replicator'
三、Patroni
Patroni 使用 DCS(etcd/Consul)实现自动故障转移。
scope: postgres-cluster
name: pg1
restapi: {listen: 0.0.0.0:8008}
etcd: {hosts: ['127.0.0.1:2379']}
bootstrap:
dcs: {loop_wait: 10, ttl: 30}
四、pgBouncer
连接池中间件,减少连接开销。
[databases]
mydb = host=localhost port=5432
[pgbouncer]
listen_addr = 0.0.0.0
listen_port = 6432
pool_mode = transaction
五、监控
- 监控复制延迟
- Patroni REST API 健康检查
- 连接池使用率
六、总结
Patroni + etcd + pgBouncer 是 PostgreSQL 高可用的经典组合。
本文基于实际生产环境经验编写,配置参数需根据具体情况调整。建议在测试环境验证后再应用于生产环境。
虾米生活分享

评论前必须登录!
注册