Allow restore_command parameter to be changed with reload.
This commit changes restore_command from PGC_POSTMASTER to PGC_SIGHUP. As the side effect of this commit, restore_command can be reset to empty during archive recovery. In this setting, archive recovery tries to replay only WAL files available in pg_wal directory. This is the same behavior as when the command that always fails is specified in restore_command. Note that restore_command still must be specified (not empty) when starting archive recovery, even after applying this commit. This is necessary as the safeguard to prevent users from forgetting to specify restore_command and starting archive recovery. Thanks to Peter Eisentraut, Michael Paquier, Andres Freund, Robert Haas and Anastasia Lubennikova for discussion. Author: Sergei Kornilov Reviewed-by: Kyotaro Horiguchi, Fujii Masao Discussion: https://postgr.es/m/2317771549527294@sas2-985f744271ca.qloud-c.yandex.net
This commit is contained in:
parent
87ae9691d2
commit
942305a363
|
@ -3567,7 +3567,8 @@ restore_command = 'copy "C:\\server\\archivedir\\%f" "%p"' # Windows
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
This parameter can only be set at server start.
|
This parameter can only be set in the <filename>postgresql.conf</filename>
|
||||||
|
file or on the server command line.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
|
@ -3699,7 +3699,7 @@ static struct config_string ConfigureNamesString[] =
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
{"restore_command", PGC_POSTMASTER, WAL_ARCHIVE_RECOVERY,
|
{"restore_command", PGC_SIGHUP, WAL_ARCHIVE_RECOVERY,
|
||||||
gettext_noop("Sets the shell command that will be called to retrieve an archived WAL file."),
|
gettext_noop("Sets the shell command that will be called to retrieve an archived WAL file."),
|
||||||
NULL
|
NULL
|
||||||
},
|
},
|
||||||
|
|
|
@ -253,7 +253,6 @@
|
||||||
# placeholders: %p = path of file to restore
|
# placeholders: %p = path of file to restore
|
||||||
# %f = file name only
|
# %f = file name only
|
||||||
# e.g. 'cp /mnt/server/archivedir/%f %p'
|
# e.g. 'cp /mnt/server/archivedir/%f %p'
|
||||||
# (change requires restart)
|
|
||||||
#archive_cleanup_command = '' # command to execute at every restartpoint
|
#archive_cleanup_command = '' # command to execute at every restartpoint
|
||||||
#recovery_end_command = '' # command to execute at completion of recovery
|
#recovery_end_command = '' # command to execute at completion of recovery
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue