c.jewell@lancaster.ac.uk (Chris Jewell) writes:
> I'm trying to implement a backup strategy for a research database in
> order to prevent again users accidentally dropping their data.
>
> My preferred method would be to create regular snapshots of the data
> directory, and then send this to the backup server using rsync, with
> hard-linking backup rotation. The backup data directories could then be
> examined using a postmaster running on the backup server to extract any
> accidentally deleted tables.
>
> My problem is how to do these snapshots: is it enough to create a hard
> link to the directory, or is there still a risk that a currently running
> transaction might introduce inconsistencies? I guess I could use the
> pg_ctl -m 'Smart' command to stop the database after all clients have
> disconnected, but I sometimes have users leaving their clients connected
> all night. Is there any other way to suspend the postmaster such that
> it finishes its current transaction and queues any other transactions
> while the snapshot is taking place? Any other ideas of how I can create
> such snapshots?
Short answer to "is there a risk?" is "You betcha!"
There's a fairly new feature called Point in Time Recovery that is
specifically designed to address those risks.
<http://www.postgresql.org/docs/8.1/static/backup-online.html>
--
let name="cbbrowne" and tld="ntlug.org" in String.concat "@" [name;tld];;
http://cbbrowne.com/info/advocacy.html
The English exam was a piece of cake---which was a bit of a surprise,
actually, because I was expecting some questions on a sheet of paper.