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 failback
4. 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 <daulat.ram@xxxxxxxxxxxxxxx> 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 <laurenz.albe@xxxxxxxxxxx>
Sent: Thursday, March 5, 2020 5:37 PM
To: Daulat Ram <Daulat.Ram@xxxxxxxxxxxxxxx>; pgsql-general@xxxxxxxxxxxxxxxxxxxx
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
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 <laurenz.albe@xxxxxxxxxxx>
Sent: Thursday, March 5, 2020 5:37 PM
To: Daulat Ram <Daulat.Ram@xxxxxxxxxxxxxxx>; pgsql-general@xxxxxxxxxxxxxxxxxxxx
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