On Wed, Jun 5, 2024 at 6:26 AM Laurenz Albe <laurenz.albe@xxxxxxxxxxx> wrote:
On Wed, 2024-06-05 at 06:36 +0000, Meera Nair wrote:
> 2024-06-05 11:41:32.369 IST [54369] LOG: restored log file "00000005000000010000006A" from archive
> 2024-06-05 11:41:33.112 IST [54369] LOG: restored log file "00000005000000010000006B" from archive
> cp: cannot stat ‘/home/pgsql/wmaster/00000005000000010000006C’: No such file or directory
> 2024-06-05 11:41:33.167 IST [54369] LOG: redo done at 1/6B000100
> 2024-06-05 11:41:33.172 IST [54369] FATAL: archive file "00000005000000010000006B" has wrong size: 0 instead of 16777216
> 2024-06-05 11:41:33.173 IST [54367] LOG: startup process (PID 54369) exited with exit code 1
> 2024-06-05 11:41:33.173 IST [54367] LOG: terminating any other active server processes
> 2024-06-05 11:41:33.174 IST [54375] FATAL: archive command was terminated by signal 3: Quit
> 2024-06-05 11:41:33.174 IST [54375] DETAIL: The failed archive command was: cp pg_wal/00000005000000010000006B /home/pgsql/wmaster/00000005000000010000006B
> 2024-06-05 11:41:33.175 IST [54367] LOG: archiver process (PID 54375) exited with exit code 1
> 2024-06-05 11:41:33.177 IST [54367] LOG: database system is shut down
>
> Here ‘/home/pgsql/wmaster’ is my archivedir (the folder where WAL segments are restored from)
>
> Before attempting start, size of
> 00000005000000010000006B file was 16 MB.
> After failing to detect 00000005000000010000006C, there is a FATAL error saying wrong size for 00000005000000010000006B
> Now the size of 00000005000000010000006B is observed as 2 MB. Size of all other WAL segments remain 16 MB.
>
> -rw------- 1 postgres postgres 2359296 Jun 5 11:34 00000005000000010000006B
That looks like you have "archive_mode = always", and "archive_command" writes
back to the archive. Don't do that.
In fact, don't write your own PITR backup process. Use something like PgBackRest or BarMan.