mirror of
https://github.com/EnterpriseDB/repmgr.git
synced 2026-03-28 17:36:30 +00:00
Compare commits
4 Commits
update-pro
...
dev/repmgr
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c9c380a022 | ||
|
|
e696e28f43 | ||
|
|
8a3cdcd1b9 | ||
|
|
682bd7306d |
@@ -68,7 +68,6 @@ news are always welcome.
|
|||||||
|
|
||||||
Thanks from the repmgr core team.
|
Thanks from the repmgr core team.
|
||||||
|
|
||||||
* Ian Barwick
|
|
||||||
* Israel Barth
|
* Israel Barth
|
||||||
* Mario González
|
* Mario González
|
||||||
* Martín Marqués
|
* Martín Marqués
|
||||||
@@ -76,6 +75,7 @@ Thanks from the repmgr core team.
|
|||||||
|
|
||||||
Past contributors:
|
Past contributors:
|
||||||
|
|
||||||
|
* Ian Barwick
|
||||||
* Jaime Casanova
|
* Jaime Casanova
|
||||||
* Abhijit Menon-Sen
|
* Abhijit Menon-Sen
|
||||||
* Simon Riggs
|
* Simon Riggs
|
||||||
|
|||||||
@@ -192,6 +192,9 @@
|
|||||||
<listitem>
|
<listitem>
|
||||||
<simpara><link linkend="repmgr-node-service">repmgr node service</link> (to execute <command>CHECKPOINT</command> via the <option>--checkpoint</option>; note this is also called by <link linkend="repmgr-standby-switchover">repmgr standby switchover</link>)</simpara>
|
<simpara><link linkend="repmgr-node-service">repmgr node service</link> (to execute <command>CHECKPOINT</command> via the <option>--checkpoint</option>; note this is also called by <link linkend="repmgr-standby-switchover">repmgr standby switchover</link>)</simpara>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<simpara><link linkend="repmgr-node-rejoin">repmgr node rejoin</link> (to execute <command>repmgr node rejoin --force-rewind</command>)</simpara>
|
||||||
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
</para>
|
</para>
|
||||||
</sect3>
|
</sect3>
|
||||||
|
|||||||
@@ -125,7 +125,7 @@
|
|||||||
<link linkend="release-5.5.0">&repmgrversion;</link> (&releasedate;)
|
<link linkend="release-5.5.0">&repmgrversion;</link> (&releasedate;)
|
||||||
</entry>
|
</entry>
|
||||||
<entry>
|
<entry>
|
||||||
12, 13, 15, 16, 17
|
13, 14, 15, 16, 17
|
||||||
</entry>
|
</entry>
|
||||||
<entry>
|
<entry>
|
||||||
|
|
||||||
@@ -143,7 +143,7 @@
|
|||||||
<link linkend="release-5.4.1">5.4.1</link> (2023-04-04)
|
<link linkend="release-5.4.1">5.4.1</link> (2023-04-04)
|
||||||
</entry>
|
</entry>
|
||||||
<entry>
|
<entry>
|
||||||
10, 11, 12, 13, 15
|
10, 11, 12, 13, 14, 15
|
||||||
</entry>
|
</entry>
|
||||||
<entry>
|
<entry>
|
||||||
|
|
||||||
|
|||||||
@@ -113,6 +113,29 @@
|
|||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><option>-S/--superuser</option></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Specify a superuser to be used by <application>pg_rewind</application>
|
||||||
|
for its source server connection.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
<application>pg_rewind</application> requires a normal (non-replication)
|
||||||
|
connection with <literal>pg_read_server_files</literal> privilege or
|
||||||
|
superuser rights. If the &repmgr; user has the <literal>REPLICATION</literal>
|
||||||
|
attribute but lacks these privileges, use this option to specify
|
||||||
|
a suitably privileged user for the <application>pg_rewind</application>
|
||||||
|
connection. The superuser's password should be configured in
|
||||||
|
<filename>.pgpass</filename>.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
This option is only effective in combination with
|
||||||
|
<option>--force-rewind</option>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><option>-W/--no-wait</option></term>
|
<term><option>-W/--no-wait</option></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
@@ -281,6 +304,23 @@
|
|||||||
a "magic bullet" which can resolve all problematic replication situations.
|
a "magic bullet" which can resolve all problematic replication situations.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<para>
|
||||||
|
<command>pg_rewind</command> requires a normal (non-replication) connection to
|
||||||
|
the source server. The user for this connection must have superuser rights or
|
||||||
|
the <literal>pg_read_server_files</literal> role.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
If the &repmgr; user has the <literal>REPLICATION</literal> attribute but does
|
||||||
|
not have the privileges required by <command>pg_rewind</command>, use the
|
||||||
|
<option>-S/--superuser</option> option to specify a suitably privileged user
|
||||||
|
for the <command>pg_rewind</command> source connection. For example:
|
||||||
|
<programlisting>
|
||||||
|
repmgr node rejoin -f /etc/repmgr.conf -d 'host=node3 dbname=repmgr user=repmgr' \
|
||||||
|
--force-rewind -S postgres</programlisting>
|
||||||
|
</para>
|
||||||
|
</note>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
A typical use-case for <command>pg_rewind</command> is when a scenario like the following
|
A typical use-case for <command>pg_rewind</command> is when a scenario like the following
|
||||||
is encountered:
|
is encountered:
|
||||||
|
|||||||
@@ -2838,9 +2838,29 @@ do_node_rejoin(void)
|
|||||||
appendShellString(&command,
|
appendShellString(&command,
|
||||||
config_file_options.data_directory);
|
config_file_options.data_directory);
|
||||||
|
|
||||||
appendPQExpBuffer(&command,
|
if (runtime_options.superuser[0] != '\0')
|
||||||
" --source-server='%s'",
|
{
|
||||||
primary_node_record.conninfo);
|
t_conninfo_param_list rewind_conninfo = T_CONNINFO_PARAM_LIST_INITIALIZER;
|
||||||
|
char *rewind_conninfo_str = NULL;
|
||||||
|
|
||||||
|
initialize_conninfo_params(&rewind_conninfo, false);
|
||||||
|
parse_conninfo_string(primary_node_record.conninfo, &rewind_conninfo, NULL, false);
|
||||||
|
param_set(&rewind_conninfo, "user", runtime_options.superuser);
|
||||||
|
rewind_conninfo_str = param_list_to_string(&rewind_conninfo);
|
||||||
|
|
||||||
|
appendPQExpBuffer(&command,
|
||||||
|
" --source-server='%s'",
|
||||||
|
rewind_conninfo_str);
|
||||||
|
|
||||||
|
pfree(rewind_conninfo_str);
|
||||||
|
free_conninfo_params(&rewind_conninfo);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
appendPQExpBuffer(&command,
|
||||||
|
" --source-server='%s'",
|
||||||
|
primary_node_record.conninfo);
|
||||||
|
}
|
||||||
|
|
||||||
if (runtime_options.dry_run == true)
|
if (runtime_options.dry_run == true)
|
||||||
{
|
{
|
||||||
@@ -3698,6 +3718,7 @@ do_node_help(void)
|
|||||||
printf(_(" --config-archive-dir directory to temporarily store retained configuration files\n" \
|
printf(_(" --config-archive-dir directory to temporarily store retained configuration files\n" \
|
||||||
" (default: /tmp)\n"));
|
" (default: /tmp)\n"));
|
||||||
printf(_(" -W, --no-wait don't wait for the node to rejoin cluster\n"));
|
printf(_(" -W, --no-wait don't wait for the node to rejoin cluster\n"));
|
||||||
|
printf(_(" -S, --superuser=USERNAME superuser to use for pg_rewind if repmgr user is not superuser\n"));
|
||||||
puts("");
|
puts("");
|
||||||
|
|
||||||
printf(_("NODE SERVICE\n"));
|
printf(_("NODE SERVICE\n"));
|
||||||
|
|||||||
@@ -5359,6 +5359,13 @@ do_standby_switchover(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
appendPQExpBufferChar(&node_rejoin_options, ' ');
|
appendPQExpBufferChar(&node_rejoin_options, ' ');
|
||||||
|
|
||||||
|
if (runtime_options.superuser[0] != '\0')
|
||||||
|
{
|
||||||
|
appendPQExpBuffer(&node_rejoin_options,
|
||||||
|
"--superuser=%s ",
|
||||||
|
runtime_options.superuser);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
key_value_list_free(&remote_config_files);
|
key_value_list_free(&remote_config_files);
|
||||||
|
|||||||
@@ -1761,6 +1761,7 @@ check_cli_parameters(const int action)
|
|||||||
case STANDBY_SWITCHOVER:
|
case STANDBY_SWITCHOVER:
|
||||||
case NODE_CHECK:
|
case NODE_CHECK:
|
||||||
case NODE_SERVICE:
|
case NODE_SERVICE:
|
||||||
|
case NODE_REJOIN:
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
item_list_append_format(&cli_warnings,
|
item_list_append_format(&cli_warnings,
|
||||||
|
|||||||
Reference in New Issue
Block a user