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.