>"You need to have statistics recovered to the same state as they were >when you took the FS level backup of your database after shutting down >the server."
Correct
>"Shutting down" is important since that is when you would have >statistics files ($PGDATA/pg_stat/*.stat) available to backup. They >capture the statistics as of when the server was shut down. Agreed
>What I did:
>1) Collect a few statistics in a result file from a currently running >server. For example, the result of the query "select * from >pg_stat_user_tables", into say stats1.txt
>2) Clean shut down the server. Take a snapshot of the data directory, >"cp -r $pgdata $pgbkp"
>3) Start the server and run a few pgbench tests so that statistics >change. Again collect stats, same as in (1) into say stats2.txt
>4) Write $pgbkp/recovery.conf with appropriate restore_command and >maybe recovery target (PITR), which I did not, though. Note that we >have archiving enabled.
>5) Start the server using -D $pgbkp (may be with port changed for the >sake of testing).
>6) After server started in (5) is done recovering and comes online, >collect stats again into say stats3.txt
>7) Compare stats3.txt with stats1.txt and stats2.txt.
>8) I observed that stats3.txt == stats1.txt. That is stats after >recovery are same as they were when the snapshot was taken.
Thank you for all the effort! A question
When server was restarted in (5) which stats file was loaded stats1.txt or stats.2.txt?. I think it must have been stats1.txt as stats3.txt = stats1.txt. What happens if stats2.txt is loaded on (5) instead on stats1.txt? I am trying to figure out if the Server will reject stats file from a different timeline than the one its been rolled back to.