public inbox for [email protected]  
help / color / mirror / Atom feed
From: [email protected]
To: [email protected]
Subject: In-place upgrade with streaming replicas
Date: Wed, 19 Feb 2025 13:49:12 +0100
Message-ID: <[email protected]> (raw)
In-Reply-To: <[email protected]>
References: <[email protected]>

Dear All,

I am trying to follow instructions regarding in-place upgrade with 
streaming replica servers. The documentation here: 
https://www.postgresql.org/docs/13/pgupgrade.html#:~:text=Prepare%20for%20standby%20server%20upgrade... 
says that I should check 'Latest checkpoint location' in primary and 
replica servers. Now, I want to make this process automatic, so I would 
like to know a reliable way to make checkpoint locations match surely. 
During the automated upgrade procedure, I restart all servers on a 
different tcp ports, thus no legitim clients connect to primary, and 
thus they dont make any changes. Then, I issue CHECKPOINT on primary, 
retrieve pg_current_wal_lsn() on primary, and wait until all replicas 
report the same value in pg_last_wal_replay_lsn(), then I issue a 
CHECKPOINT on replicas. According to documentation this creates a 
RESTOREPOINT on replicas. Then, I repeat until pg_current_wal_lsn() does 
not change on primary. Then, if I shut down cluster in a way that first 
the primary is shut down, and just after the replicas, then, checkpoint 
locations will match. Howewer, if I accidentally shut down a replica 
before primary is shut down, the checkpoint locations wont match.

With this, I have the question, that after the shutdown of primary, what 
is the guarantee for replicas having the same checkpoint location? Why 
does the order of shutting down the servers matter? What would be the 
really exact and reliable way to ensure that replicas will have the same 
checkpoint location as the primary?

Thanks in advance,
Richard





reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected]
  Subject: Re: In-place upgrade with streaming replicas
  In-Reply-To: <[email protected]>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox