mirror of
https://github.com/EnterpriseDB/repmgr.git
synced 2026-03-27 00:46:29 +00:00
standby promote: in --dry-run mode, display promote command which will be used
For PostgreSQL 12 and later, explicitly note whether repmgr user has execution permissions on the pg_promote() function.
This commit is contained in:
3
HISTORY
3
HISTORY
@@ -15,8 +15,9 @@
|
|||||||
repmgr: consolidate replication connection code (Ian)
|
repmgr: consolidate replication connection code (Ian)
|
||||||
repmgr: check permissions for "pg_promote()" and fall back to pg_ctl
|
repmgr: check permissions for "pg_promote()" and fall back to pg_ctl
|
||||||
if necessary (Ian)
|
if necessary (Ian)
|
||||||
repmgr: accept option -S/--superuser for "node check"; GitHub #612 (Ian)
|
repmgr: in --dry-run mode, display promote command which will be used (Ian)
|
||||||
repmgr: enable "service_promote_command" in PostgreSQL 12 (Ian)
|
repmgr: enable "service_promote_command" in PostgreSQL 12 (Ian)
|
||||||
|
repmgr: accept option -S/--superuser for "node check"; GitHub #612 (Ian)
|
||||||
|
|
||||||
5.0 2019-10-15
|
5.0 2019-10-15
|
||||||
general: add PostgreSQL 12 support (Ian)
|
general: add PostgreSQL 12 support (Ian)
|
||||||
|
|||||||
@@ -49,6 +49,14 @@
|
|||||||
<title>General improvements</title>
|
<title>General improvements</title>
|
||||||
<para>
|
<para>
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<link linkend="repmgr-standby-promote"><command>repmgr standby promote</command></link>:
|
||||||
|
when executed with <option>--dry-run</option>, the method which would be used to promote the node
|
||||||
|
will be displayed.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
<link linkend="repmgr-standby-follow"><command>repmgr standby follow</command></link>:
|
<link linkend="repmgr-standby-follow"><command>repmgr standby follow</command></link>:
|
||||||
@@ -67,7 +75,7 @@
|
|||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
<link linkend="repmgr-node-check"><command>repmgr node check</command></link>:
|
<link linkend="repmgr-node-check"><command>repmgr node check</command></link>:
|
||||||
accept option <option>-S</option>/<option>--superuser</option> GitHub #621.
|
accept option <option>-S</option>/<option>--superuser</option>. GitHub #621.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|||||||
@@ -115,6 +115,10 @@
|
|||||||
<function>pg_promote()</function>, &repmgr; will fall back to using "<command>pg_ctl promote</command>".
|
<function>pg_promote()</function>, &repmgr; will fall back to using "<command>pg_ctl promote</command>".
|
||||||
</para>
|
</para>
|
||||||
<tip>
|
<tip>
|
||||||
|
<para>
|
||||||
|
Execute <command>repmgr standby promote</command> with the <option>--dry-run</option>
|
||||||
|
to check whether the &repmgr; user has permission to execute <function>pg_promote()</function>.
|
||||||
|
</para>
|
||||||
<para>
|
<para>
|
||||||
If the <literal>repmgr</literal> user is not a superuser, execution permission for this
|
If the <literal>repmgr</literal> user is not a superuser, execution permission for this
|
||||||
function can be granted with e.g.:
|
function can be granted with e.g.:
|
||||||
|
|||||||
@@ -2409,6 +2409,37 @@ do_standby_promote(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* In --dry-run mode, note which promotion method will be used.
|
||||||
|
* For Pg12 and later, check whether pg_promote() can be executed.
|
||||||
|
*/
|
||||||
|
if (runtime_options.dry_run == true)
|
||||||
|
{
|
||||||
|
if (config_file_options.service_promote_command[0] != '\0')
|
||||||
|
{
|
||||||
|
log_info(_("node will be promoted using command defined in \"service_promote_command\""));
|
||||||
|
log_detail(_("\"service_promote_command\" is \"%s\""),
|
||||||
|
config_file_options.service_promote_command);
|
||||||
|
}
|
||||||
|
else if (PQserverVersion(local_conn) >= 120000)
|
||||||
|
{
|
||||||
|
if (can_execute_pg_promote(local_conn) == false)
|
||||||
|
{
|
||||||
|
log_info(_("node will be promoted using \"pg_ctl promote\""));
|
||||||
|
log_detail(_("user \"%s\" does not have permission to execute \"pg_promote()\""),
|
||||||
|
PQuser(local_conn));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
log_info(_("node will be promoted using the \"pg_promote()\" function"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
log_info(_("node will be promoted using \"pg_ctl promote\""));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (runtime_options.dry_run == true)
|
if (runtime_options.dry_run == true)
|
||||||
{
|
{
|
||||||
PQfinish(local_conn);
|
PQfinish(local_conn);
|
||||||
|
|||||||
Reference in New Issue
Block a user