standalone hot backup docs
The docs contain the following example of an archive_command for use
with standalone hot backup:
test -f /var/lib/pgsql/backup_in_progress && cp -i %p
/var/lib/pgsql/archive/%f </dev/null
Unfortunately, as I found out when I tried it, this command returns a
non-zero (on Linux/bash) when the backup_in_progress file doesn't exist,
which means that we keep accumulating WAL files when we should be
recycling them.
ISTM it would be better to use this:
if test -f /var/lib/pgsql/backup_in_progress ; then cp -i %p
/var/lib/pgsql/archive/%f </dev/null ; fi
which only returns non-zero if the copy fails.
If there's no objection I'll patch the docs accordingly - should they be
backpatched also?
cheers
andrew
Andrew Dunstan wrote:
The docs contain the following example of an archive_command for use
with standalone hot backup:test -f /var/lib/pgsql/backup_in_progress && cp -i %p
/var/lib/pgsql/archive/%f </dev/nullUnfortunately, as I found out when I tried it, this command returns a
non-zero (on Linux/bash) when the backup_in_progress file doesn't exist,
which means that we keep accumulating WAL files when we should be
recycling them.ISTM it would be better to use this:
if test -f /var/lib/pgsql/backup_in_progress ; then cp -i %p
/var/lib/pgsql/archive/%f </dev/null ; fiwhich only returns non-zero if the copy fails.
If there's no objection I'll patch the docs accordingly - should they be
backpatched also?
Yea, that example was wrong. Good catch. I did found a cleaner way to
implement it though:
archive_command = 'test ! -f /var/lib/pgsql/backup_in_progress || cp -i %p /var/lib/pgsql/archive/%f < /dev/null'
That keeps the one-line format rather than the 'if' block with semicolons
required. I have applied this to CVS.
--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://postgres.enterprisedb.com
+ If your life is a hard drive, Christ can be your backup. +