Possible mistake in backup documentation

Started by PG Bug reporting formover 5 years ago5 messagesdocs
Jump to latest
#1PG Bug reporting form
noreply@postgresql.org

The following documentation comment has been logged on the website:

Page: https://www.postgresql.org/docs/12/wal.html
Description:

Hello!
In "25.3.3.2. Making An Exclusive Low-Level Backup", you said that "The
exclusive backup method is deprecated and should be avoided. Prior to
PostgreSQL 9.6, this was the only low-level method available, but it is now
recommended that all users upgrade their scripts to use non-exclusive
backups". But in the example in "25.3.6.1. Standalone Hot Backups" you use
the exclusive version of backup command. Is it a mistake or not?

#2Laurenz Albe
laurenz.albe@cybertec.at
In reply to: PG Bug reporting form (#1)
Re: Possible mistake in backup documentation

On Tue, 2020-09-22 at 14:17 +0000, PG Doc comments form wrote:

In "25.3.3.2. Making An Exclusive Low-Level Backup", you said that "The
exclusive backup method is deprecated and should be avoided. Prior to
PostgreSQL 9.6, this was the only low-level method available, but it is now
recommended that all users upgrade their scripts to use non-exclusive
backups". But in the example in "25.3.6.1. Standalone Hot Backups" you use
the exclusive version of backup command. Is it a mistake or not?

Yes, that's true.

How about the attached patch?

Perhaps that is too complicated, but I have no idea how to make it simpler.
Ceterum censeo, we should not deprecate the exclusive backup API.

Yours,
Laurenz Albe

Attachments:

0001-Use-non-exclusive-backup-in-example.patchtext/x-patch; charset=UTF-8; name=0001-Use-non-exclusive-backup-in-example.patchDownload+10-7
#3Magnus Hagander
magnus@hagander.net
In reply to: Laurenz Albe (#2)
Re: Possible mistake in backup documentation

On Fri, Sep 25, 2020 at 2:32 PM Laurenz Albe <laurenz.albe@cybertec.at>
wrote:

On Tue, 2020-09-22 at 14:17 +0000, PG Doc comments form wrote:

In "25.3.3.2. Making An Exclusive Low-Level Backup", you said that "The
exclusive backup method is deprecated and should be avoided. Prior to
PostgreSQL 9.6, this was the only low-level method available, but it is

now

recommended that all users upgrade their scripts to use non-exclusive
backups". But in the example in "25.3.6.1. Standalone Hot Backups" you

use

the exclusive version of backup command. Is it a mistake or not?

Yes, that's true.

Well, technically it is *correct*. It's just rather silly that we are using
the deprecated API in the example.

How about the attached patch?

Perhaps that is too complicated, but I have no idea how to make it simpler.

For this example, can't we just show two sessions. That is, "in a psql, run
pg_start_backup(). Then in a different session, copy all the files, and
then back in psql run pg_stop_backup()" or such?

This is still just an example of a low level operation, where the
recommendation is (and is there iirc) to use a different tool for it
already.

Ceterum censeo, we should not deprecate the exclusive backup API.

Well. We should depreciate the way it works now, but we should also provide
a *better* way to solve the actual problem. This is not necessarily an API
that looks the way the deprecated one looks -- the focus should be on
providing a solution to the problem, not to un-deprecate the API.

--
Magnus Hagander
Me: https://www.hagander.net/ <http://www.hagander.net/&gt;
Work: https://www.redpill-linpro.com/ <http://www.redpill-linpro.com/&gt;

#4Laurenz Albe
laurenz.albe@cybertec.at
In reply to: Magnus Hagander (#3)
Re: Possible mistake in backup documentation

On Fri, 2020-09-25 at 14:50 +0200, Magnus Hagander wrote:

On Fri, Sep 25, 2020 at 2:32 PM Laurenz Albe <laurenz.albe@cybertec.at> wrote:

On Tue, 2020-09-22 at 14:17 +0000, PG Doc comments form wrote:

In "25.3.3.2. Making An Exclusive Low-Level Backup", you said that "The
exclusive backup method is deprecated and should be avoided. Prior to
PostgreSQL 9.6, this was the only low-level method available, but it is now
recommended that all users upgrade their scripts to use non-exclusive
backups". But in the example in "25.3.6.1. Standalone Hot Backups" you use
the exclusive version of backup command. Is it a mistake or not?

Yes, that's true.

Well, technically it is *correct*. It's just rather silly that we are using the deprecated API in the example.

How about the attached patch?
Perhaps that is too complicated, but I have no idea how to make it simpler.

For this example, can't we just show two sessions. That is, "in a psql, run pg_start_backup().
Then in a different session, copy all the files, and then back in psql run pg_stop_backup()" or such?

This is still just an example of a low level operation, where the recommendation is (and is there iirc)
to use a different tool for it already.

I thought the point of the example is to show a workable script that could
perform a backup and could be used as a starting point to develop your own
backup solution. (I know that there are people who think writing your own
backup solution is evil, but I am not one of them.)

If we replace that with a verbal description of how to do it, the example just
duplicates what is already documented.

In that case I would opt for simply removing the example.

Yours,
Laurenz Albe

#5Stephen Frost
sfrost@snowman.net
In reply to: Laurenz Albe (#4)
Re: Possible mistake in backup documentation

Greetings,

* Laurenz Albe (laurenz.albe@cybertec.at) wrote:

On Fri, 2020-09-25 at 14:50 +0200, Magnus Hagander wrote:

On Fri, Sep 25, 2020 at 2:32 PM Laurenz Albe <laurenz.albe@cybertec.at> wrote:

On Tue, 2020-09-22 at 14:17 +0000, PG Doc comments form wrote:

In "25.3.3.2. Making An Exclusive Low-Level Backup", you said that "The
exclusive backup method is deprecated and should be avoided. Prior to
PostgreSQL 9.6, this was the only low-level method available, but it is now
recommended that all users upgrade their scripts to use non-exclusive
backups". But in the example in "25.3.6.1. Standalone Hot Backups" you use
the exclusive version of backup command. Is it a mistake or not?

Yes, that's true.

Well, technically it is *correct*. It's just rather silly that we are using the deprecated API in the example.

How about the attached patch?
Perhaps that is too complicated, but I have no idea how to make it simpler.

For this example, can't we just show two sessions. That is, "in a psql, run pg_start_backup().
Then in a different session, copy all the files, and then back in psql run pg_stop_backup()" or such?

This is still just an example of a low level operation, where the recommendation is (and is there iirc)
to use a different tool for it already.

I thought the point of the example is to show a workable script that could
perform a backup and could be used as a starting point to develop your own
backup solution. (I know that there are people who think writing your own
backup solution is evil, but I am not one of them.)

That's certainly not actually the case. We don't currently have
anywhere close to sufficient documention (unless you are reading the
code and understand how PG works) for someone to develop their own
backup solution using the low-level API. There's been attempts to fix
that, and I suspect there'll be another attempt to improve the situation
for v14, but not sure if that'll be successful.

If we replace that with a verbal description of how to do it, the example just
duplicates what is already documented.

In that case I would opt for simply removing the example.

Removing the example, as it really doesn't do what it implies, is
probably the best way to address this. I'm not convinced that we could
come up with a sufficient verbal description, but I'm happy to take a
look and provide feedback if someone wants to try.

Thanks,

Stephen