Failover is easy but failback is little bit tricky.I have implemented failback
by doing following steps:
1. Start original primary which will be doing crash recovery. It should be
designed in such a way that once it is up application should not start
connecting to it otherwise there will be split brain and data-mistach between
two instances. I implemented it by using a virtual IP mounting on server which
is actual primary using keepalived.2. Shutdown original primary and do a
pg_rewind to make that as slave for new primary.3. Once slave (original
primary) is caught up with primary do failback4. Repeat steps #1-#3 to make
failed over instance slave again.
Regards,Virendra
On Thursday, March 5, 2020, 8:48:54 AM PST, Daulat Ram
<[email protected]> wrote:
Thanks for your inputs Laurenz Albe.
Would you please explain single-master failover solution.
Suppose we have promoted standby (replica) as master after the h/w issue at
Master.
If after few hours we recovered the h/w then how we can switchback on the old
primary. .
As in Oracle we have switchover method for Dataguard. How we can do in Postgres.
Thanks,
-----Original Message-----
From: Laurenz Albe <[email protected]>
Sent: Thursday, March 5, 2020 5:37 PM
To: Daulat Ram <[email protected]>; [email protected]
Subject: Re: Real application clustering in postgres.
On Thu, 2020-03-05 at 07:45 +0000, Daulat Ram wrote:
> Is there any possibility/options to setup a real application clustering in
> Postgres as in Oracle we have a RAC feature.
No, and as far as I know nobody feels interested in providing it.
RAC is a complicated architecture that doesn't do much good, so most people
feel that it would be a waste of time and effort.
RAC ist not really a scaling solution: because of the shared storage, you can
only scale for more CPUs; I/O remains the bottleneck.
RAC is not really a high availability solution: because of the shared storage,
it has a sibgle point of failure.
Today, people use shared-nothing architectures for high avaliability, like
Patroni.
> What about multi-master replication in Postgres. would you please suggest how
> it is useful and how can setup it.
There is no support for that in core PostgreSQL.
There is a closed-source implementation that you can buy:
https://www.2ndquadrant.com/en/resources/postgres-bdr-2ndquadrant/
But multi-master replication is complicated to get right, and an applicatoin
that uses it has to be specifically designed for that.
Very often a single-master failover solution is a better solution.
Yours,
Laurenz Albe
--
Cybertec | https://www.cybertec-postgresql.com