On 2/10/16 7:46 AM, Magnus Hagander wrote:
> Per discussion at the developer meeting in Brussels, here's a patch that
> makes some updates to the backup APIs, to support non-exclusive backups
> without using pg_basebackup. <...>
This sounds like a great idea and I have signed up to review.
> * A new version of pg_stop_backup is created, taking an argument
> specifying if it's exclusive or not. The current version of
> pg_stop_backup() continues to work for exclusive backups, with no
> changes to behavior. The new pg_stop_backup will return a record of
> three columns instead of just the value -- the LSN (pglsn), the backup
> label file (text) and the tablespace map file (text). If used to cancel
> an exclusive backup, backup label file and tablespace map will be NULL.
> At this point it's up to the backup software to write down the files in
> the location of the backup.
It would be nice if this new pg_stop_backup() function also output the
exact time when the backup stopped. Depending on how long
pg_stop_backup() waits for WAL to be archived a time-stamp recorded
after pg_stop_backup() returns can be pretty far off.
This information is handy for automating selection of a backup when
doing time-based PITR (or so the user can manually select). For
exclusive backups it is possible to parse the .backup file to get this
information but non-exclusive backups do not output the .backup file.
I would be happy to see the time-stamp returned from the
pg_start_backup() function as well. It's a bigger change, but once
pg_start_backup() returns multiple columns it will be easier to add more
columns in the future.
In fact, it might be better if backup_label and tablespace_map were
output by pg_start_backup(). This would give the backup software more
information to work with from the start.
Thanks!
--
-David
david@pgmasters.net