On 2025/07/14 17:08, Japin Li wrote:

Hi all,

I recently hit an error with our streaming replication setup:

   2025-07-14 11:52:59.361 CST,"replicator","",728458,"10.9.9.74:35724",68747f1b.b1d8a,1,"START_REPLICATION",2025-07-14 
11:52:59 CST,3/0,0,ERROR,58P01,"requested WAL segment 00000001000000000000000C has already been removed",,,,,,"START_REPLICATION 0/C000000 
TIMELINE 1",,,"standby","walsender",,0

It appears the requested WAL segment 00000001000000000000000C had already been
archived, and I confirmed its presence in the archive directory. However, when
the standby tried to request this file, the primary only searched for it in
pg_wal and didn't check the archive directory. I had to manually copy the
segment into pg_wal to get streaming replication working again.

My question is: Can we make the primary automatically search the archive if
restore_command is set?

I found that Fujii Masao also requested this feature [1], but it seems there
wasn't a consensus.

Yeah, I still like this idea. It's useful, for example, when we want to
temporarily retain WAL files, such as during planned standby maintenance,
to avoid "requested WAL segment ... removed." error.

Using a replication slot is one way to retain WAL files in pg_wal,
but it requires the pg_wal directory to be large enough to hold all
WAL generated during that time, which isn't always practical.

Regards,

--
Fujii Masao
NTT DATA Japan Corporation



Reply via email to