Обсуждение: standalone hot backup docs

Поиск
Список
Период
Сортировка

standalone hot backup docs

От
Andrew Dunstan
Дата:
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


Re: standalone hot backup docs

От
Bruce Momjian
Дата:
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 < /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. +