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-1411:52:59
CST,3/0,0,ERROR,58P01,"requestedWAL segment 00000001000000000000000C has already been removed",,,,,,"START_REPLICATION
0/C000000TIMELINE 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