Postgresql – How to achieve high availability PostgreSQL on windows server 2008

high-availabilitypostgresqlwindows-server-2008

I am looking for a way to get a postgresql database running with high availability on some windows 2008 server boxes.
I am not an expert in windows server administration nor postgresql, so I am a bit confused about the different alternatives.
It seems that since version 9, postgresql provides replication out-of-the-box, allowing to have several passive servers kept in sync with a master one and activating one of them if the master fails. However this has to be completely invisible to the client applications which should not even know there are several servers.
I've also read a bit about the failover clustering feature in windows 2008, which was the suggested way to achieve HA in this similar question.

As I am totally new to this field I have troubles understanding the correct way to set up this configuration. It seems to me that the "making it invisible to the client applications" would be automatically achieved by using the failover clustering of w2008, but wouldn't using this feature make the postgresql replication useless? As I understand it, if I go for the failover clustering there will be only one instance of postgresql running at any given time, and replication will be handled by windows.

Did I understand correctly so far? Can somebody help me to get a clearer vision?

Best Answer

Yes, you're understanding it correctly. Using a shared disk cluster will only provide one instance of the database running, off a set of shared disks (either DAS or SAN).

You can combine this with replication - a good example would be to replicate data to a server not connected to the shared disks, like in a co-located datacenter.

In a nutshell: Clusters are locally for HA purposes, replication is (usually, or at least in this case) for disaster recovery.

Related Topic