I gave a lightning talk at Pg Conference: West 08 about a tool that I have developed call PITRTools. PITRTools is a python based log shipping utility. Essentially it wraps itself around standard tools such as rsync, and pg_standby to provide a usable experience. Some of the features is provides are:
In all it is by far the simplest and most effective tool for PostgreSQL standby that I have used (of course I wrote it so...). One of the features recently added to PITRTools is multi-slave support. The way it works is like this:
- Auto initialization of environment
- Simple base backups
- Monitoring of Master
- Arbitrary alerts
- Failover
- Failover actions
- etc...
Archiver checks for logs in local queue if found archiver attempts to sends (queued) logs to slave N if success archiver sends new archive to slave N if success continue if fail archive local if success continue if fail bail out really loudly (FATAL) exit 1 if fail archive local if success continue if fail bail out really loudly (FATAL) exit 1 if not found Archiver sends log to Slave N if success continue if fail archive local (queue) if success continue if fail bail out really loudly (FATAL) continue if fail queue exit 1 exit 0One of the key requirements of PITRTools was no extra support. It requires no extra Python modules just Python >= 2.5 AND Python <= 2.6. No it is not 3.0 safe, but will be soon enough. Give it a whirl and let us know what you think, its BSD licensed. To get PITRTools you can check it out like so:
svn co https://projects.commandprompt.com/public/pitrtools/repo pitrtoolsIt's BSD licensed. Have at it.