Thread: Scenario using pg_rewind

Scenario using pg_rewind

From
"Kato, Sho"
Date:
Hi,

I have a question of how to use pg_rewind.
I see the manual. It says bringing an old master server back online after failover is typical case.

manual:
  A typical scenario is to bring an old master server back online after failover, as a standby that follows the new
master.

I came up with an another scenario where user uses a synchronized old master as a new master.
If so, pg_rewind need to copy WAL from a source server.
Is pg_rewind assuming to use the old master as a new master?

If pg_rewind is used only for a standby server installation, 
pg_rewind does not need to get WAL from source server, does it?

regards,

--
Kato Sho





Re: Scenario using pg_rewind

From
Michael Paquier
Date:
On Tue, Feb 27, 2018 at 07:40:27AM +0000, Kato, Sho wrote:
> I came up with an another scenario where user uses a synchronized old
> master as a new master.
> If so, pg_rewind need to copy WAL from a source server.
> Is pg_rewind assuming to use the old master as a new master?

The rewound instance needs to replay WAL from the last checkpoint where
WAL forked at promotion up to the point where WAL is being inserted on
the new primary when running pg_rewind, hence the rewound server needs
to follow the new, promoted, server anyway.  So you would be able to use
a rewound instance only after it has reached a consistent state, and
only after it has replayed on the new timeline.  So I don't see how much
that would be useful, the promoted server is going the new leader
anyway, so trying to make a rewound server again the leader just
complicates your HA flow.

> If pg_rewind is used only for a standby server installation,
> pg_rewind does not need to get WAL from source server, does it?

Not necessarily.  You can always have an archive.  The rewound instance
will likely need WAL segments on the new timeline though, after
promoting the new standby, please do not forget that a checkpoint needs
to be issued on it so as its control file is updated to reflect on-disk
its new timeline number that pg_rewind uses as a reference.  In 10 and
older versions, the odds of not needing an archive are higher than in
v11 since we have removed the need of the secondary last checkpoint on
HEAD: WAL recycling is faster now.
--
Michael

Attachment