mirror of
https://github.com/EnterpriseDB/repmgr.git
synced 2026-03-27 00:46:29 +00:00
standby switchover: in Pg13 and later, promotion overrides paused WAL replay
Preventing a switchover in this case no longer makes sense, so we apply the checks to PostgreSQL 12 and earlier only.
This commit is contained in:
@@ -2390,7 +2390,7 @@ do_standby_promote(void)
|
|||||||
if (PQserverVersion(local_conn) >= 100000)
|
if (PQserverVersion(local_conn) >= 100000)
|
||||||
log_hint(_("execute \"pg_wal_replay_resume()\" to unpause WAL replay"));
|
log_hint(_("execute \"pg_wal_replay_resume()\" to unpause WAL replay"));
|
||||||
else
|
else
|
||||||
log_hint(_("execute \"pg_xlog_replay_resume()\" to unpause WAL replay"));
|
log_hint(_("execute \"pg_xlog_replay_resume()\" to npause WAL replay"));
|
||||||
|
|
||||||
PQfinish(local_conn);
|
PQfinish(local_conn);
|
||||||
exit(ERR_PROMOTION_FAIL);
|
exit(ERR_PROMOTION_FAIL);
|
||||||
@@ -3813,8 +3813,9 @@ do_standby_switchover(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Check that WAL replay on the standby is *not* paused, as that could lead
|
* In PostgreSQL 12 and earlier, check that WAL replay on the standby
|
||||||
* to unexpected behaviour when the standby is promoted.
|
* is *not* paused, as that could lead to unexpected behaviour when the
|
||||||
|
* standby is promoted.
|
||||||
*
|
*
|
||||||
* For switchover we'll mandate that WAL replay *must not* be paused.
|
* For switchover we'll mandate that WAL replay *must not* be paused.
|
||||||
* For a promote operation we can proceed if WAL replay is paused and
|
* For a promote operation we can proceed if WAL replay is paused and
|
||||||
@@ -3824,7 +3825,7 @@ do_standby_switchover(void)
|
|||||||
* the primary completely.
|
* the primary completely.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (is_wal_replay_paused(local_conn, false) == true)
|
if (PQserverVersion(local_conn) < 130000 && is_wal_replay_paused(local_conn, false) == true)
|
||||||
{
|
{
|
||||||
ReplInfo replication_info;
|
ReplInfo replication_info;
|
||||||
init_replication_info(&replication_info);
|
init_replication_info(&replication_info);
|
||||||
|
|||||||
Reference in New Issue
Block a user