standalone hot backup docs

Started by Andrew Dunstanabout 18 years ago2 messages
#1Andrew Dunstan
andrew@dunslane.net

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

#2Bruce Momjian
bruce@momjian.us
In reply to: Andrew Dunstan (#1)
Re: standalone hot backup docs

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/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?

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 &lt; /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. +