create table players (id int, about text, age int); insert into players (id, about, age) values (generate_series(1, 5000), repeat('A cool player. ', 2) || 'My number is ' || trunc(random()*1000), trunc(random()*10 * 2 + 10)); ******************************************* dbaquaris=> select count(*) from players; 5000 dbaquaris=> select current_timestamp; 2023-07-09 17:13:00.860309+02 ******************************************* insert into players (id, about, age) values (generate_series(1, 100000), repeat('A cool player. ', 2) || 'My number is ' || trunc(random()*1000), trunc(random()*10 * 2 + 10)); ******************************************* dbaquaris=> select count(*) from players; 105000 dbaquaris=> select current_timestamp; 2023-07-09 17:36:08.502146+02 ******************************************* insert into players (id, about, age) values (generate_series(1, 1000000), repeat('A cool player. ', 2) || 'My number is ' || trunc(random()*1000), trunc(random()*10 * 2 + 10)); ******************************************* dbaquaris=> select count(*) from players; 1105000 dbaquaris=> select current_timestamp; 2023-07-09 17:37:32.076851+02 ******************************************* # PITR to 2023-07-09 17:36:08 - stop PostgreSQL - take one of the base backup before ther PITR and put it ion a temporary folder mkdir /backup/postgresql/tmp cd /backup/postgresql/tmp gunzip -c /backup/postgresql/daily/2023-07-09__16_43_59_emptydb.tar.gz | tar -xvf - - add in modify postgresql.conf restore_command = 'cp /backup/postgresql/wal/%f %p' recovery_target_time = '2023-07-09 17:36:08' recovery_target_inclusive = true - create recovery.signal file touch recovery.signal - start PostgreSQL server with the data in the temporary directory pg_ctl start -D /backup/postgresql/tmp -l /tmp/reco.log - check logfile; at the end of the recovery you will be asked to execute the following fonction in order to open the instance select pg_wal_replay_resume(); - stop PostgreSQL server with the data in the temporary directory pg_ctl stop -D /backup/postgresql/tmp -l /tmp/reco.log