Thread: Hot Standby switchover

Hot Standby switchover

From
Shoaib Mir
Date:
Hi All,

Just been trying to learn hot-standby and couldn't figure out a solution to something like this while doing a switchover:

I have three nodes where

A = Master
B = Slave1
C = Slave2

Now Hot-Standby is setup like this...

A --> B 
A --> C

Now if I will like to do a switch so as to make B the new master and have my replication look like this:

B --> C 
B --> A

Where are the steps I need for doing so?

Thanks,
--
Shoaib Mir
http://shoaibmir.wordpress.com/

Re: Hot Standby switchover

From
Dimitri Fontaine
Date:
Hi,

Shoaib Mir <shoaibmir@gmail.com> writes:
> Now Hot-Standby is setup like this...
>
> A --> B 
> A --> C
>
> Now if I will like to do a switch so as to make B the new master and have my replication look like this:
>
> B --> C 
> B --> A
>
> Where are the steps I need for doing so?

First, you need a common archive somewhere all the 3 servers can read
it, and you need to setup the restore_command so that you can use it.

Now, you can change the primary_conninfo on C so that it connects to
B. I guess that means a restart. Note that you only want to do that once
server B is the new master, so has been triggered as such. That means a
change of TimeLine, though, so it'll break streaming : that's when you
need to read the WALs from the archive, with the restore_command.

Then, to have the old master A a slave of the new master B, you need to
do a full slave setup here, with base backup and all.

I hope we will be able to get cascading support in 9.1 or before so that
it's possible to simplify all this by having a "relay" server in the
mix, so that you only talk to this one when changing the master.

Of course enabling the old master as a slave would still need a full
setup from scratch. There has been thoughts on how to bypass the base
backup there on -hackers, rather promising, but I don't know of any work
having been done yet. Guys are getting 9.0 out the door for now :)

Regards,
--
dim

Re: Hot Standby switchover

From
Shoaib Mir
Date:
On Tue, Jun 22, 2010 at 7:08 PM, Dimitri Fontaine <dfontaine@hi-media.com> wrote:
Now, you can change the primary_conninfo on C so that it connects to
B. I guess that means a restart. Note that you only want to do that once
server B is the new master, so has been triggered as such. That means a
change of TimeLine, though, so it'll break streaming : that's when you
need to read the WALs from the archive, with the restore_command.

So does that mean we don't have to build C from scratch like we will be doing for A? Is that because B and C were both slaves and reading from the same archive directory and at same point in time when we did the switchover.
 

Then, to have the old master A a slave of the new master B, you need to
do a full slave setup here, with base backup and all.

This is what I expected but just wanted to confirm. Thanks a lot for the detailed explanation on all steps.


I hope we will be able to get cascading support in 9.1 or before so that
it's possible to simplify all this by having a "relay" server in the
mix, so that you only talk to this one when changing the master.

It will be just awesome to have such support as cascading at times is really helpful. But again comparing to other third party solutions it seems just very simple to setup for replication and sure does work nice. I cant wait for 9.1 already :)
 
Regards,
--
Shoaib Mir
http://shoaibmir.wordpress.com/