On Nov 16, 2016, at 11:39 PM, Jehan-Guillaume de Rorthais <ioguix@xxxxxxx> wrote:
On Wed, 16 Nov 2016 15:51:26 -0900Israel Brewster <israel@xxxxxxxxxxxxxx> wrote:I've been playing around with streaming replication, and discovered that the following series of steps *appears* to work without complaint:
- Start with master on server A, slave on server B, replicating via streaming replication with replication slots. - Shut down master on A - Promote slave on B to master - Create recovery.conf on A pointing to B - Start (as slave) on A, streaming from B
After those steps, A comes up as a streaming replica of B, and works as expected. In my testing I can go back and forth between the two servers all day using the above steps.
My understanding from my initial research, however, is that this shouldn't be possible - I should need to perform a new basebackup from B to A after promoting B to master before I can restart A as a slave. Is the observed behavior then just a "lucky fluke" that I shouldn't rely on?
No, it's not a "lucky fluke".Seehttps://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=985bd7d49726c9f178558491d31a570d47340459The only thing you should really pay attention is that the standby was inStreaming Rep when you instructed the master to shut down, and that it staysconnected until the full stop of the master.If you really want to check everything, use pg_xlogdump on the standby and makesure the standby received the "shutdown checkpoint" from the master and wroteit in its WAL.Or is it expected behavior and my understanding about the need for a new basebackup is simply off?
This is expected, but taking a new basebackup was a requirement for some time.Does the new pg_rewind feature of 9.5 change things? If so, how?
pg_rewind helps if your standby was not connected when you lost/stopped yourmaster. It reverts the last transactions the master received and that was notstreamed to the promoted standby.
Ah, ok. So kinda an emergency recovery tool then? One step before resorting to backups? In any case, it sounds like it's not something I should need in a *normal* failover scenario, where the master goes down and the slave gets promoted.
Thanks for the information! ----------------------------------------------- 5245 Airport Industrial Rd -----------------------------------------------
|