1) Stop PG <- no, instead, execute: select pg_start_backup();
2) Make copy of current state including PGDATA w/ pg_xlog <= don't
backup the WAL archives, they are external to the database server, and
are written continuously.
3) Select pg_stop_backup();
4) run along until your problem happens.
5) stop postgres server
6) Cleanup PGDATA w/ pg_xlog
7) Restore backup taken in step 2, placing contents in PGDATA /w pg_xlog
8) setup a recovery.conf file specifying the desired transaction ID or
timestamp as the 'recovery_target' and the recovery command to fetch
from your archive.
9) restart postgres server and let it recover from the archives.
--
john r pierce, recycling bits in santa cruz