你提到的“容灾”应该是指 PostgreSQL 在 CentOS 上的容灾方案。下面从常见架构到具体做法给你一个实用总结。
适合:机房级容灾、节点故障切换
✅ 优点
❌ 缺点
# postgresql.conf
synchronous_commit = on # 同步
适合:自动故障转移
组件:
✅ 自动选主
✅ 自动恢复
✅ 生产级方案
CREATE PUBLICATION pub FOR ALL TABLES;
CREATE SUBSCRIPTION sub CONNECTION '...' PUBLICATION pub;
适合:
pg_basebackuppg_dumppg_basebackup -h master -D /var/lib/pgsql/standby -R
# postgresql.conf
wal_level = replica
max_wal_senders = 5
CREATE ROLE repl REPLICATION LOGIN PASSWORD 'pwd';
pg_basebackup -h 主库IP -D /var/lib/pgsql/data -U repl -R
systemctl start postgresql
✅ 自动成为只读从库
| 场景 | 推荐方案 |
|---|---|
| 单机房 | 主从 + 备份 |
| 跨机房 | 异步流复制 |
| 高可用 | Patroni + etcd |
| 云环境 | 云厂商托管 PG |
systemd5432firewall-cmd --add-port=5432/tcp --permanent
如果你愿意,可以告诉我:
我可以给你一套可直接用的配置。