Re: Remove Deprecated Exclusive Backup Mode
Jehan-Guillaume de Rorthais <jgdr@dalibo.com>
From: Jehan-Guillaume de Rorthais <jgdr@dalibo.com>
To: Robert Haas <robertmhaas@gmail.com>
Cc: Magnus Hagander <magnus@hagander.net>, Stephen Frost
<sfrost@snowman.net>, Laurenz Albe <laurenz.albe@cybertec.at>, David Steele
<david@pgmasters.net>, PostgreSQL Developers
<pgsql-hackers@lists.postgresql.org>
Date: 2020-07-01T23:06:31Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Remove exclusive backup mode
- 39969e2a1e4d 15.0 landed
On Wed, 1 Jul 2020 15:58:57 -0400 Robert Haas <robertmhaas@gmail.com> wrote: > On Wed, Jul 1, 2020 at 3:50 PM Magnus Hagander <magnus@hagander.net> wrote: > > As far as I've seen, the one thing that people have problems with in the > > exclusive mode backups are precisely the fact that they have to keep a > > persistent conneciton open, and thus it cannot work together with backup > > software that is limited to only supporting running a pre- and a post > > script. > > > > Something like I have suggested here is to solve *that* problem. I don't > > think anybody actually explicitly wants "exclusive backups" -- they want a > > backup solution that plugs into their world of pre/post scripts. And if we > > can make that one work in a safer way than the current exclusive backups, > > ohw is that not an improvement? > > Yeah, I guess that's a pretty fair point. I have to confess to having > somewhat limited enthusiasm for adding a third mode here, but it might > be worth it. > > It seems pretty well inevitable to me that people are going to forget > to end them. There's so many way an admin could break their backup process and not notice it. Even with current nonexclusive backup, a bad written script might creates bad unrecoverable backups. In regard with your concern, monitoring in progress backups might be *one* answer, from server side. This was "easy" with exclusive backup, we just monitor the backup_label age and warn if it is older than expected [1]. Using non-exclusive backup...this is not that easy anymore. And pg_is_in_backup() is quite misleading if the admin found it without reading doc. Maybe an admin function to list in progress non-exclusive backup and related backend pid might be a good start? With such admin function facilities, client side process could monitor backup and decide to cancel them based on some internal backup policies/process. Tools like pg_basebackup (and probably pgbackrest/barman to some extends) still need the backup to abort on disconnection. Maybe it could flag its session using the replication protocol or call a new admin function or load a hook on session-shutdown to keep previous API behavior? Regards, [1] https://github.com/OPMDG/check_pgactivity/#user-content-backup_label_age-8.1