我正在寻找一种方法来获得在一些Windows 2008服务器框上运行高可用性的postgresql数据库。
我不是在Windows服务器pipe理专家,也不是postgresql,所以我有点困惑不同的select。
看起来,从版本9开始,postgresql提供了开箱即用的复制function,允许多个被动服务器与主服务器保持同步,并在主服务器出现故障时激活其中一个。 但是,对于那些甚至不知道有多个服务器的客户端应用程序来说,这是完全不可见的。
我还读了一些关于Windows 2008中的故障转移群集function,这是在类似问题中实现HA的build议方式。
由于我对这个领域完全陌生,所以我很难理解设置这个configuration的正确方法。 在我看来,通过使用w2008的故障转移群集可以自动实现“使其对客户端应用程序不可见”,但是不会使用此function使postgresql复制无效? 据我了解,如果我去故障转移群集将只有一个postgresql实例运行在任何给定的时间,复制将由Windows处理。
我目前的理解是否正确? 有人能帮助我获得更清晰的视野吗?
是的,你正确的理解它。 使用共享磁盘集群将仅提供运行数据库的一个实例,从一组共享磁盘(DAS或SAN)中提取。
您可以将其与复制相结合 – 一个很好的例子就是将数据复制到未连接到共享磁盘的服务器上,就像在一个位于同一地点的数据中心一样。
简而言之:群集在本地用于HA目的,复制(通常或至less在这种情况下)用于灾难恢复。