We are assisting in the system administration of a partner that uses
PostGres in a mission critical position in their system. They have mail servers
and other things that rely on 24/7 availability for the postgres server. They
are running postgres 9.04 on redhat linux (2.6.32-131.0.15.el6.x86_64). This is
running on one old machine, and thus does not really provide the liability they
looking for.
I had the thought that I could set up another server as a slave, then
promote the slave in the event it’s necessary. I was trying I made a system that
watches for a change in the IP number number of the server in dns, then downs
the primary, swaps primary-secondary configs in the primary, restarts the
primary, then does the same in the secondary. This actually worked on the first
test from failing the primary to the secondary. The problem came when I stried
to switch it back. When I tried to restart the original primary as secondary, it
failed saying the database was corrupted.
There are a couple of possible solutions to this, but I’m starting to think
that what they probably really want anyway is a Postgres server cluster of two
servers that stay in synch with each other, and can simultaneously accept read
and write requests. Are there any opinions here about the best way to set this
up?
|