Re: pg_stop_backup(wait_for_archive := true) on standby server
Masahiko Sawada <sawada.mshk@gmail.com>
From: Masahiko Sawada <sawada.mshk@gmail.com>
To: Michael Paquier <michael.paquier@gmail.com>
Cc: Stephen Frost <sfrost@snowman.net>, Robert Haas <robertmhaas@gmail.com>, David Steele <david@pgmasters.net>,
Peter Eisentraut <peter.eisentraut@2ndquadrant.com>, Magnus Hagander <magnus@hagander.net>, Noah Misch <noah@leadboat.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2017-07-25T10:18:42Z
Lists: pgsql-hackers
Attachments
- pg_stop_backup_on_standby_v5.patch (application/octet-stream) patch v5
On Tue, Jul 25, 2017 at 4:43 AM, Michael Paquier <michael.paquier@gmail.com> wrote: > On Mon, Jul 24, 2017 at 6:45 PM, Stephen Frost <sfrost@snowman.net> wrote: >> What the change would do is make the pg_stop_backup() caller block until >> the last WAL is archvied, and perhaps that ends up taking hours, and >> then the connection is dropped for whatever reason and the backup fails >> where it otherwise.... what? wouldn't have been valid anyway at that >> point, since it's not valid until the last WAL is actually archived. >> Perhaps eventually it would be archived and the caller was planning for >> that and everything is fine, but, well, that feels like an awful lot of >> wishful thinking. > > Letting users taking unconsciously inconsistent backups is worse than > potentially breaking scripts that were actually not working as > Postgres would expect. So I am +1 for back-patching a lighter version > of the proposed patch that makes the wait happen on purpose. > >>> > I'd hate to have to do it, but we could technically add a GUC to address >>> > this in the back-branches, no? I'm not sure that's really worthwhile >>> > though.. >>> >>> That would be mighty ugly. >> >> Oh, absolutely agreed. > > Yes, let's avoid that. We are talking about a switch aimed at making > backups potentially inconsistent. Thank you for the review comments! Attached updated the patch. The noting in pg_baseback doc will be necessary for back branches if we decided to not back-patch it to back branches. So it's not contained in this patch for now. Regarding back-patching this to back branches, I also vote for back-patching to back branches. Or we can fix the docs of back branches and fix the code only in PG10. I expect that the user who wrote a backup script has done enough functional test and dealt with this issue somehow, but since the current doc clearly says that pg_stop_backup() waits for all WAL to be archived we have to make a consideration about there are users who wrote a wrong backup script. So I think we should at least notify it in the minor release. Regards, -- Masahiko Sawada NIPPON TELEGRAPH AND TELEPHONE CORPORATION NTT Open Source Software Center
Commits
-
Make pg_stop_backup's wait_for_archive flag work on standbys.
- 52f8a59dd953 10.0 landed
-
Implement backup API functions for non-exclusive backups
- 7117685461af 9.6.0 cited