mirror of
https://github.com/postgres/postgres.git
synced 2025-05-11 05:41:32 +03:00
Fix some documentation in pg_rewind
Since 11, it is possible to use a non-superuser role when using an online source cluster with pg_rewind as long as the role has proper permissions to execute on the source all the functions used by pg_rewind, and the documentation stated that a superuser is necessary. Let's add at the same time all the details needed to create such a role. A second confusion which comes a lot from users is that it is necessary to issue a checkpoint on a freshly-promoted standby so as its control file has up-to-date timeline information which is used by pg_rewind to validate the operation. Let's document that properly. This is back-patched down to 9.5 where pg_rewind has been introduced. Author: Michael Paquier Reviewed-by: Magnus Hagander Discussion: https://postgr.es/m/CABUevEz5bpvbwVsYCaSMV80CBZ5-82nkMzbb+Bu=h1m=rLdn=g@mail.gmail.com Backpatch-through: 9.5
This commit is contained in:
parent
7dbc0759e0
commit
064b3fcbdb
@ -153,10 +153,12 @@ PostgreSQL documentation
|
|||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Specifies a libpq connection string to connect to the source
|
Specifies a libpq connection string to connect to the source
|
||||||
<productname>PostgreSQL</productname> server to synchronize the target with.
|
<productname>PostgreSQL</productname> server to synchronize the target
|
||||||
The connection must be a normal (non-replication) connection
|
with. The connection must be a normal (non-replication) connection
|
||||||
with superuser access. This option requires the source
|
with a role having sufficient permissions to execute the functions
|
||||||
server to be running and not in recovery mode.
|
used by <application>pg_rewind</application> on the source server
|
||||||
|
(see Notes section for details) or a superuser role. This option
|
||||||
|
requires the source server to be running and not in recovery mode.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
@ -221,6 +223,30 @@ PostgreSQL documentation
|
|||||||
<refsect1>
|
<refsect1>
|
||||||
<title>Notes</title>
|
<title>Notes</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
When executing <application>pg_rewind</application> using an online
|
||||||
|
cluster as source, a role having sufficient permissions to execute the
|
||||||
|
functions used by <application>pg_rewind</application> on the source
|
||||||
|
cluster can be used instead of a superuser. Here is how to create such
|
||||||
|
a role, named <literal>rewind_user</literal> here:
|
||||||
|
<programlisting>
|
||||||
|
CREATE USER rewind_user LOGIN;
|
||||||
|
GRANT EXECUTE ON function pg_catalog.pg_ls_dir(text, boolean, boolean) TO rewind_user;
|
||||||
|
GRANT EXECUTE ON function pg_catalog.pg_stat_file(text, boolean) TO rewind_user;
|
||||||
|
GRANT EXECUTE ON function pg_catalog.pg_read_binary_file(text) TO rewind_user;
|
||||||
|
GRANT EXECUTE ON function pg_catalog.pg_read_binary_file(text, bigint, bigint, boolean) TO rewind_user;
|
||||||
|
</programlisting>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
When executing <application>pg_rewind</application> using an online
|
||||||
|
cluster as source which has been recently promoted, it is necessary
|
||||||
|
to execute a <command>CHECKPOINT</command> after promotion so as its
|
||||||
|
control file reflects up-to-date timeline information, which is used by
|
||||||
|
<application>pg_rewind</application> to check if the target cluster
|
||||||
|
can be rewound using the designated source cluster.
|
||||||
|
</para>
|
||||||
|
|
||||||
<refsect2>
|
<refsect2>
|
||||||
<title>How it works</title>
|
<title>How it works</title>
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user