Hi, I have tried following test cases about PITR:
a) Time and events on Master : 16:32:03 HKT Begin; CREATE TABLE test22 (id INTEGER PRIMARY KEY); INSERT INTO test22 VALUES (generate_series(1,220000)); End; Commit; 16:35:02 HKT Begin; CREATE TABLE test23 (id INTEGER PRIMARY KEY); INSERT INTO test23 VALUES (generate_series(1,230000)); End; Commit; 16:57:01 HKT Begin; CREATE TABLE test24 (id INTEGER PRIMARY KEY); INSERT INTO test24 VALUES (generate_series(1,240000)); End; Commit; 15:57:45 HKT Begin; CREATE TABLE test25 (id INTEGER PRIMARY KEY); INSERT INTO test25 VALUES (generate_series(1,250000)); End; Commit; 16:57:56 HKT drop table test24; ( 16:58:30 HKT <== recovery_target_time ) 17:01:53 HKT Begin; CREATE TABLE test26 (id INTEGER PRIMARY KEY); INSERT INTO test26 VALUES (generate_series(1,260000)); End; Commit; b) Expected Result - Do PITR on another test machine, - Set recovery_target_time = '2013-08-12 16:58:30 HKT', i.e wish to get table test22, test23, test25 restored, but not test24 (dropped) / test26 (after recovery_target_time) - PITR should stop the recovery according to recovery_target_time (i.e. should not replay all WAL) c) Recovery.conf (only 4 lines) restore_command = '/usr/local/pgsql/bin/pg_standby -d -s 2 -t /tmp/pgsql.trigger.5442 /var/pgsql/data/archive/ %f %p %r >> /tmp/pitr.log' recovery_end_command = 'rm -f /tmp/pgsql.trigger.5442' recovery_target_time = '2013-08-12 16:58:30 HKT' recovery_target_inclusive = 'false' d) Result (Not Good ) PG ignored the recovery_target_time, actually it just replayed all WAL which is not good. - Log : LOG: database system was interrupted; last known up at 2013-08-12 17:07:28 HKT LOG: starting point-in-time recovery to 2013-08-12 16:58:30+08 <== showing the point-in-time of the recovery Trigger file: <not set> Waiting for WAL file: 00000001000000AD0000000B WAL file path: /var/pgsql/data/archive//00000001000000AD0000000B Restoring to: pg_xlog/RECOVERYXLOG Sleep interval: 2 seconds Max wait interval: 0 forever Command for restore: cp "/var/pgsql/data/archive//00000001000000AD0000000B" "pg_xlog/RECOVERYXLOG" Keep archive history: 000000000000000000000000 and later running restore: OK - check tables from psql: postgres=# \d List of relations Schema | Name | Type | Owner --------+--------+-------+---------- public | test22 | table | postgres public | test23 | table | postgres public | test25 | table | postgres public | test26 | table | postgres <=== this table was created at 17:01:53 and should not be restored (4 rows) postgres=# select count(1) from test26; count --------- 2600000 (1 row) I am new to PITR, can you please advise if this is a bug and any work around? regards -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs