public inbox for [email protected]  
help / color / mirror / Atom feed
Re: pg_rewind problem: cannot find WAL
3+ messages / 2 participants
[nested] [flat]

* Re: pg_rewind problem: cannot find WAL
@ 2025-05-08 06:54 Luca Ferrari <[email protected]>
  2025-05-08 11:26 ` Re: pg_rewind problem: cannot find WAL Luca Ferrari <[email protected]>
  0 siblings, 1 reply; 3+ messages in thread

From: Luca Ferrari @ 2025-05-08 06:54 UTC (permalink / raw)
  To: Laurenz Albe <[email protected]>; +Cc: pgsql-general <[email protected]>

On Wed, May 7, 2025 at 3:55 PM Laurenz Albe <[email protected]> wrote:
>
> I don't think it is connected to a WAL switch.
>

Thanks.

> I'd say that you should set "wal_keep_size" high enough that all the WAL
> needed for pg_rewind is still present.
>
> If you have a WAL archive, you could define a restore_command on the server
> you want to rewind.

I've pgbackrest making backups, so I have an archive_command. I'm
going to see if putting a restore_command can fix the problem.

Thanks for the suggestion.

Luca






^ permalink  raw  reply  [nested|flat] 3+ messages in thread

* Re: pg_rewind problem: cannot find WAL
  2025-05-08 06:54 Re: pg_rewind problem: cannot find WAL Luca Ferrari <[email protected]>
@ 2025-05-08 11:26 ` Luca Ferrari <[email protected]>
  2025-05-08 15:10   ` Re: pg_rewind problem: cannot find WAL Adrian Klaver <[email protected]>
  0 siblings, 1 reply; 3+ messages in thread

From: Luca Ferrari @ 2025-05-08 11:26 UTC (permalink / raw)
  To: Laurenz Albe <[email protected]>; +Cc: pgsql-general <[email protected]>

On Thu, May 8, 2025 at 8:54 AM Luca Ferrari <[email protected]> wrote:
>
> I've pgbackrest making backups, so I have an archive_command. I'm
> going to see if putting a restore_command can fix the problem.
>

But I'm facing a quite trivial problem: in ubuntu installation the
configuration files are separated from the PGDATA.
Apparently pg_rewind is trying to read postgresql.conf to get the
restore_command, and I don't know how to specify the different
location of the postgresql.conf (cannot specifcy -c as in postgres):

$ /usr/lib/postgresql/17/bin/pg_rewind -D /var/lib/postgresql/17/main
--source-server="user=replica_fluca host=dev-psqlha3
dbname=replica_fluca" -R -P --debug -c
postgres: could not access the server configuration file
"/var/lib/postgresql/17/main/postgresql.conf": No such file or
directory
no data was returned by command "/usr/lib/postgresql/17/bin/postgres
-D /var/lib/postgresql/17/main -C restore_command"
child process exited with exit code 2
pg_rewind: error: could not read restore_command from target cluster

Any idea?
Clearly, postgresql.auto.conf is within PGDATA, and since my
recovery_command is there, one trick could be to touch and empty
PGDATA/postgresql.conf, pg_rewind, remove the fake configurtion file.
But I'm sure there is a smarter solution.

Thanks,
Luca






^ permalink  raw  reply  [nested|flat] 3+ messages in thread

* Re: pg_rewind problem: cannot find WAL
  2025-05-08 06:54 Re: pg_rewind problem: cannot find WAL Luca Ferrari <[email protected]>
  2025-05-08 11:26 ` Re: pg_rewind problem: cannot find WAL Luca Ferrari <[email protected]>
@ 2025-05-08 15:10   ` Adrian Klaver <[email protected]>
  0 siblings, 0 replies; 3+ messages in thread

From: Adrian Klaver @ 2025-05-08 15:10 UTC (permalink / raw)
  To: Luca Ferrari <[email protected]>; Laurenz Albe <[email protected]>; +Cc: pgsql-general <[email protected]>

On 5/8/25 04:26, Luca Ferrari wrote:
> On Thu, May 8, 2025 at 8:54 AM Luca Ferrari <[email protected]> wrote:
>>
>> I've pgbackrest making backups, so I have an archive_command. I'm
>> going to see if putting a restore_command can fix the problem.
>>
> 
> But I'm facing a quite trivial problem: in ubuntu installation the
> configuration files are separated from the PGDATA.
> Apparently pg_rewind is trying to read postgresql.conf to get the
> restore_command, and I don't know how to specify the different
> location of the postgresql.conf (cannot specifcy -c as in postgres):
> 
> $ /usr/lib/postgresql/17/bin/pg_rewind -D /var/lib/postgresql/17/main
> --source-server="user=replica_fluca host=dev-psqlha3
> dbname=replica_fluca" -R -P --debug -c
> postgres: could not access the server configuration file
> "/var/lib/postgresql/17/main/postgresql.conf": No such file or
> directory
> no data was returned by command "/usr/lib/postgresql/17/bin/postgres
> -D /var/lib/postgresql/17/main -C restore_command"
> child process exited with exit code 2
> pg_rewind: error: could not read restore_command from target cluster
> 
> Any idea?

/usr/lib/postgresql/17/bin/pg_rewind  --help
pg_rewind resynchronizes a PostgreSQL cluster with another copy of the 
cluster.

Usage:
   pg_rewind [OPTION]...

Options:
   -c, --restore-target-wal       use "restore_command" in target 
configuration to
                                  retrieve WAL files from archives
   -D, --target-pgdata=DIRECTORY  existing data directory to modify
       --source-pgdata=DIRECTORY  source data directory to synchronize with
       --source-server=CONNSTR    source server to synchronize with
   -n, --dry-run                  stop before modifying anything
   -N, --no-sync                  do not wait for changes to be written
                                  safely to disk
   -P, --progress                 write progress messages
   -R, --write-recovery-conf      write configuration for replication
                                  (requires --source-server)
       --config-file=FILENAME     use specified main server configuration
                                  file when running target cluster
       --debug                    write a lot of debug messages
       --no-ensure-shutdown       do not automatically fix unclean shutdown
       --sync-method=METHOD       set method for syncing files to disk
   -V, --version                  output version information, then exit
   -?, --help                     show this help, then exit


So use --config-file=FILENAME?

> Clearly, postgresql.auto.conf is within PGDATA, and since my
> recovery_command is there, one trick could be to touch and empty
> PGDATA/postgresql.conf, pg_rewind, remove the fake configurtion file.
> But I'm sure there is a smarter solution.
> 
> Thanks,
> Luca
> 
> 

-- 
Adrian Klaver
[email protected]







^ permalink  raw  reply  [nested|flat] 3+ messages in thread


end of thread, other threads:[~2025-05-08 15:10 UTC | newest]

Thread overview: 3+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2025-05-08 06:54 Re: pg_rewind problem: cannot find WAL Luca Ferrari <[email protected]>
2025-05-08 11:26 ` Luca Ferrari <[email protected]>
2025-05-08 15:10   ` Adrian Klaver <[email protected]>

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