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 0
One 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.