PostgreSQL 流行 HA 方案
背景
数据库的HA是一个比较经典的话题,几乎所有的生产环境都会考虑给数据库部署HA。
PostgreSQL 的HA方案也很多,在我的GIT里有两个自定义的HA脚本,有兴趣的童鞋可以参考一下原理。
单个虚拟IP, 自动failover, 手动failback, 需fence设备
双虚拟IP, 自动failover, 自动failback, 需fence设备
市面上也有很多成熟的PG HA方案,本文收集了一些,仅供参考。
HA 方案收集
1. 流复制,同步复制/自动降级,pacemaker , corosync
http://clusterlabs.org/wiki/PgSQL_Replicated_Cluster
2. PostgreSQL failover managed by ZooKeeper
http://www.openscg.com/2013/04/postgresql-clustering/
https://github.com/jinty/zgres
3. 仲裁使用etcd, stolon,仲裁很强壮
http://zhangwensheng.cn/blog/post/vincent/postgresql_ha_stolon_etcd
https://github.com/sorintlab/stolon
https://sgotti.me/post/stolon-introduction/
4. 仲裁使用etcd, governor,仲裁很强壮
https://github.com/compose/governor
5. 其他,还有比如基于DRBD,或者基于共享存储的就不在罗列了。
如果没有FENCE设备,或者FENCE设备不可信的话,又或者需要大面积的部署PG节点,建议考虑etcd的方案,仲裁节点比较强壮,可以信任。
同时根据需求部署同步,或异步的流复制备节点,pg_rewind处理时间线分歧等。