Steps to reproduce use case: 1. Log in as a postgres user and setup env variables (PGDATA, PGLOG, PGPORT etc.), also mkdir $PGDATA/../archive_dir 2. Create data directory initdb -k 3. Modify postgresql.conf wal_level = replica archive_mode = on archive_command = 'test ! -f /home/postgres/data/pgpro/archive_dir/%f && cp %p /home/postgres/data/pgpro/archive_dir/%f' 4. Start server pg_ctl start -l $PGLOG/logfile 5. Create example database and run psql createdb db_pitr_01 psql -d db_pitr_1 6. Create table (just to modify database) CREATE TABLE t8x1_float4 AS SELECT random()::float4 as a1 FROM generate_series(1, 8); 7. Switch to a new WAL file SELECT pg_switch_wal(); 8. Make a backup pg_basebackup -Ft -X none -D - | gzip > /home/postgres/data/pgpro/db_file_backup.tar.gz 9. Update table INSERT INTO t8x1_float4 values (1.); INSERT INTO t8x1_float4 values (2.); INSERT INTO t8x1_float4 values (3.); 10. Switch to a new WAL file SELECT pg_switch_wal(); 11. Stop database and remove data directory pg_ctl stop rm -r /home/postgres/data/pgpro/data-debug/* 12. Restore data directory tar xvfz db_file_backup.tar.gz -C /home/postgres/data/pgpro/data-debug/ 13. Update the following parameters in postgrespro.conf recovery_target_time = '2024-03-26 10:26:30 GMT' restore_command = 'cp /home/postgres/data/pgpro/archive_dir/%f %p' 14. touch recovery.signal 15. pg_ctl start -l $PGLOG/logfile 16. Start database and see it is in Point In Time Recovery mode psql -d db_pitr_01 db_pitr_01=# SELECT pg_is_in_recovery(); pg_is_in_recovery ------------------- t (1 row) db_pitr_01=# SELECT pg_is_standby_requested(); pg_is_standby_requested ------------------------- f (1 row) Now we can differ recovering server in Point In Time Recovery mode from standby mode. pg_is_standby_requested() returns true for a replica.