Re: detecting binary backup in progress - Mailing list pgsql-hackers

From Heikki Linnakangas
Subject Re: detecting binary backup in progress
Date
Msg-id 51A8FA29.6070807@vmware.com
Whole thread Raw
In response to Re: detecting binary backup in progress  (Joe Conway <mail@joeconway.com>)
Responses Re: detecting binary backup in progress
Re: detecting binary backup in progress
List pgsql-hackers
On 31.05.2013 21:41, Joe Conway wrote:
> On 05/31/2013 10:46 AM, Heikki Linnakangas wrote:
>> On 31.05.2013 20:38, Joe Conway wrote:
>>> I can check for the presence of $PGDATA/backup_label in order to
>>> detect a backup in progress (i.e. pg_start_backup() has been run
>>> and pg_stop_backup() has not yet been run).
>>>
>>> However there is a period of time after pg_start_backup() is
>>> first executed to when it completes, during which backup_label
>>> file does not exist yet, but the backup has essentially been
>>> started. Is there any way to detect this state?
>>
>> What are you trying to accomplish? Even if you eliminate that
>> window, it's always possible that a backup starts just after you've
>> checked that there is no backup in progress.
>
> We can lay down a lockfile before checking for backup in progress, and
> the script that starts the backup can check for the lockfile before
> doing anything. There is still a race-window, but I want to minimize
> it. pg_is_in_backup() mentioned nearby on this thread will help close
> the gap.

Note that pg_is_in_backup() just checks for presence of 
$PGDATA/backup_label. Also note that pg_basebackup doesn't create 
backup_label in the server. It's included in the backup that's sent to 
the client, but it's never written to disk in the server. So checking 
for backup_label manually or with pg_is_in_backup() will return false 
even if pg_basebackup is running.

- Heikki



pgsql-hackers by date:

Previous
From: Stephen Frost
Date:
Subject: Re: removing PD_ALL_VISIBLE
Next
From: Joe Conway
Date:
Subject: Re: detecting binary backup in progress