Re: [Patch] pg_rewind: options to use restore_command fromrecovery.conf or command line

Поиск
Список
Период
Сортировка
От Alexander Korotkov
Тема Re: [Patch] pg_rewind: options to use restore_command fromrecovery.conf or command line
Дата
Msg-id CAPpHfdvhgsHLzSprk1d+fheSUkdhZzb1nutdKaqxp0u6UTG7-A@mail.gmail.com
обсуждение исходный текст
Ответ на Re: [Patch] pg_rewind: options to use restore_command fromrecovery.conf or command line  (Michael Paquier <michael@paquier.xyz>)
Ответы Re: [Patch] pg_rewind: options to use restore_command fromrecovery.conf or command line
Список pgsql-hackers
Hi, Michael!

Thank you for your review!
The revised patch is attached.

On Sun, Jan 19, 2020 at 1:24 PM Michael Paquier <michael@paquier.xyz> wrote:
> On Sat, Jan 18, 2020 at 06:21:22PM +0300, Alexander Korotkov wrote:
> > I made some minor cleanup.  In particular, I've to fix usage of terms
> > "WAL" and "WALs".  This patch sometimes use term "WAL" to specify
> > single WAL file and term "WALs" to specify multiple WAL files.  But
> > WAL stands for Write Ahead Log.  So, "WALs" literally stands to
> > multiple logs.  And we don't use term "WALs" to describe multiple WAL
> > files anywhere else.  Usage of term "WAL" to describe single file is
> > not clear as well.
>
> WAL is a method to ensure data integrity, as the docs mention:
> https://www.postgresql.org/docs/11/wal-intro.html
>
> So using WAL to tell about a WAL segment file is wrong, WALs is not a
> term that actually exists.  So, in my opinion, it is fine to use "WAL
> file", "WAL segment" or even "WAL segment file".
>
> I have read through the patch, while on it..
>
> +static int
> +RestoreArchivedWALFile(const char *path, const char *xlogfname,
> +                      off_t expectedSize, const char *restoreCommand)
> Not a fan of putting that to pg_rewind/parsexlog.c.  It has nothing to
> do with WAL parsing, and it seems to me that we could have an argument
> for making this available as a frontend-only API in src/common/.

I've put it into src/common/fe_archive.c.

> Do we actually need --target-restore-command at all?  It seems to me
> that we have all we need with --restore-target-wal, and that's not
> really instinctive to pass down a command via another command..

I was going to argue that --restore-target-wal is useful.  But I
didn't find convincing example for that.  Naturally, if one uses
restore_command during pg_rewind then why the same restore_command
can't be used in new standby.  So, I've removed --restore-target-wal
argument.  If we will find convincing use case we can return it any
moment.

> +   printf(_("  -c, --restore-target-wal              use restore_command in the postgresql.conf\n"));
> +   printf(_("                                        to retrieve WAL
> files from archive\n"));
> The command could be part of a different configuration file, included
> by postgresql.conf.

I've rephrased the comment.

> +use File::Glob ':bsd_glob';
> +use File::Path qw(remove_tree make_path);
> +use File::Spec::Functions qw(catdir catfile);
> Is this compatible with our minimum perl requirements for the TAP
> tests?

All extra dependencies have been removed.

> +       # Add restore_command to postgresql.conf of target cluster.
> +       open(my $conf_fd, ">>", $master_conf_path) or die;
> +       print $conf_fd "\nrestore_command='$restore_command'";
> +       close $conf_fd;
> We have append_conf() for that.

Sure, thank you for pointing!


------
Alexander Korotkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

Вложения

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Robert Haas
Дата:
Сообщение: Re: Removing pg_pltemplate and creating "trustable" extensions
Следующее
От: Daniel Gustafsson
Дата:
Сообщение: Re: Minor issues in .pgpass