如果使用这些工具可以创建一个具有完整功能的现代数据库集群:
- pgbouncer(带有 HAProxy for HA)
- 重新管理
- 酒保
主数据库将在 repmgr 服务器上运行。它有主备。如果primary down,standby可以up。但需要几秒钟。那个时候,用户不能通过pending访问数据库?难道没有一个很好的方法来进行实时响应吗?
如果使用这些工具可以创建一个具有完整功能的现代数据库集群:
主数据库将在 repmgr 服务器上运行。它有主备。如果primary down,standby可以up。但需要几秒钟。那个时候,用户不能通过pending访问数据库?难道没有一个很好的方法来进行实时响应吗?
对于所有高可用性解决方案,您在故障转移期间总是会有一些停机时间,通常不到一分钟。
原因是集群件必须可靠地确定成员已关闭,然后才能进行故障转移。这意味着只有在多次尝试与集群成员通信失败后才会启动故障转移。
您可以通过减少尝试这些测试的频率来减少故障转移时间,但这会增加不必要的故障转移风险(例如,由一次性网络故障引起)。不必要的故障转移会减少数据库的总正常运行时间,因此您不会以这种方式赢得任何东西。
尝试使用 Regmgr 的 PgpoolII 或 PGpool 1. 开源 2. 高可用 3. 与单个外部数据库访问端口的池连接
为了达到合理的高可用性,我认为您至少需要 3 台服务器。
这是 pgpoolII 在线文档,介绍如何创建健壮的集群系统并避免单点故障或脑裂
图源