mirror of
https://github.com/EnterpriseDB/repmgr.git
synced 2026-03-27 17:06:29 +00:00
doc: document "child_node" events
This commit is contained in:
@@ -91,8 +91,7 @@
|
|||||||
may contain spaces, so should be quoted in the provided command
|
may contain spaces, so should be quoted in the provided command
|
||||||
configuration, e.g.:
|
configuration, e.g.:
|
||||||
<programlisting>
|
<programlisting>
|
||||||
event_notification_command='/path/to/some/script %n %e %s "%t" "%d"'
|
event_notification_command='/path/to/some/script %n %e %s "%t" "%d"'</programlisting>
|
||||||
</programlisting>
|
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
@@ -147,7 +146,10 @@
|
|||||||
<para>
|
<para>
|
||||||
By default, all notification types will be passed to the designated script;
|
By default, all notification types will be passed to the designated script;
|
||||||
the notification types can be filtered to explicitly named ones using the
|
the notification types can be filtered to explicitly named ones using the
|
||||||
<varname>event_notifications</varname> parameter.
|
<varname>event_notifications</varname> parameter, e.g.:
|
||||||
|
<programlisting>
|
||||||
|
event_notifications=primary_register,standby_register,witness_register</programlisting>
|
||||||
|
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
@@ -255,6 +257,19 @@
|
|||||||
<simpara><literal>standby_recovery</literal></simpara>
|
<simpara><literal>standby_recovery</literal></simpara>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<simpara><literal><link linkend="repmgrd-primary-child-disconnection-events">child_node_disconnect</link></literal></simpara>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<simpara><literal><link linkend="repmgrd-primary-child-disconnection-events">child_node_reconnect</link></literal></simpara>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<simpara><literal><link linkend="repmgrd-primary-child-disconnection-events">child_node_new_connect</link></literal></simpara>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<simpara><literal><link linkend="repmgrd-primary-child-disconnection-events">child_nodes_disconnect_command</link></literal></simpara>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
|||||||
@@ -165,7 +165,7 @@
|
|||||||
|
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="repmgrd-primary-standby-disconnection" xreflabel="Monitoring standby disconnections on the primary">
|
<sect1 id="repmgrd-primary-child-disconnection" xreflabel="Monitoring standby disconnections on the primary">
|
||||||
<indexterm>
|
<indexterm>
|
||||||
<primary>repmgrd</primary>
|
<primary>repmgrd</primary>
|
||||||
<secondary>standby disconnection</secondary>
|
<secondary>standby disconnection</secondary>
|
||||||
@@ -192,13 +192,19 @@
|
|||||||
example to "fence" the node and ensure it is isolated from any
|
example to "fence" the node and ensure it is isolated from any
|
||||||
applications attempting to access the replication cluster.
|
applications attempting to access the replication cluster.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
|
||||||
|
<sect2 id="repmgrd-primary-child-disconnection-monitoring-process">
|
||||||
|
<title>Standby disconnections monitoring process and criteria</title>
|
||||||
|
<para>
|
||||||
|
<application>repmgrd</application> monitors attach child nodes and decides
|
||||||
|
whether to invoke the user-defined command based on the following process
|
||||||
|
and criteria:
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Every few seconds (defined by the configuration parameter <varname>child_nodes_check_interval</varname>
|
Every few seconds (defined by the configuration parameter <varname>child_nodes_check_interval</varname>;
|
||||||
(a value of <literal>0</literal> disables this altogether), <application>repmgrd</application> queries
|
a value of <literal>0</literal> disables this altogether), <application>repmgrd</application> queries
|
||||||
the <literal>pg_stat_replication</literal> system view and compares
|
the <literal>pg_stat_replication</literal> system view and compares
|
||||||
the nodes present there against the list of nodes registered with &repmgr; which
|
the nodes present there against the list of nodes registered with &repmgr; which
|
||||||
should be attached to the primary.
|
should be attached to the primary.
|
||||||
@@ -233,7 +239,7 @@
|
|||||||
If the <varname>child_nodes_disconnect_command</varname> parameter is set in
|
If the <varname>child_nodes_disconnect_command</varname> parameter is set in
|
||||||
<filename>repmgr.conf</filename>, <application>repmgrd</application> will then loop through all child nodes.
|
<filename>repmgr.conf</filename>, <application>repmgrd</application> will then loop through all child nodes.
|
||||||
If it determines that insufficient child nodes are connected, and a
|
If it determines that insufficient child nodes are connected, and a
|
||||||
minimum of <varname>child_nodes_disconnect_timeout</varname> seconds (default: <literal>30</literal>
|
minimum of <varname>child_nodes_disconnect_timeout</varname> seconds (default: <literal>30</literal>)
|
||||||
has elapsed since the last node became disconnected, <application>repmgrd</application> will then execute the
|
has elapsed since the last node became disconnected, <application>repmgrd</application> will then execute the
|
||||||
<varname>child_nodes_disconnect_command</varname> script.
|
<varname>child_nodes_disconnect_command</varname> script.
|
||||||
</para>
|
</para>
|
||||||
@@ -253,7 +259,8 @@
|
|||||||
the criteria for its execution are met again.
|
the criteria for its execution are met again.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
The <varname>child_nodes_disconnect_command</varname> script will not be executed if <application>repmgrd</application> is paused.
|
The <varname>child_nodes_disconnect_command</varname> script will not be executed if
|
||||||
|
<application>repmgrd</application> is paused.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@@ -266,7 +273,122 @@
|
|||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
</para>
|
</para>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2 id="repmgrd-primary-child-disconnection-example">
|
||||||
|
<title>Standby disconnections monitoring process example</title>
|
||||||
|
<para>
|
||||||
|
</para>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2 id="repmgrd-primary-child-disconnection-configuration">
|
||||||
|
<title>Standby disconnections monitoring process configuration</title>
|
||||||
|
<para>
|
||||||
|
</para>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2 id="repmgrd-primary-child-disconnection-events">
|
||||||
|
<title>Standby disconnections monitoring process event notifications</title>
|
||||||
|
<para>
|
||||||
|
The following <link linkend="event-notifications">event notifications</link> may be generated:
|
||||||
|
</para>
|
||||||
|
<variablelist>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<indexterm>
|
||||||
|
<primary>child_node_disconnect</primary>
|
||||||
|
<secondary>event notification</secondary>
|
||||||
|
</indexterm>
|
||||||
|
<term><varname>child_node_disconnect</varname></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
This event is generated after <application>repmgrd</application>
|
||||||
|
detects that a child node is no longer streaming from the primary node.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Example:
|
||||||
|
<programlisting>
|
||||||
|
$ repmgr cluster event --event=child_node_disconnect
|
||||||
|
Node ID | Name | Event | OK | Timestamp | Details
|
||||||
|
---------+-------+-----------------------+----+---------------------+--------------------------------------------
|
||||||
|
1 | node1 | child_node_disconnect | t | 2019-04-24 12:41:36 | node "node3" (node ID: 3) has disconnected</programlisting>
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<indexterm>
|
||||||
|
<primary>child_node_reconnect</primary>
|
||||||
|
<secondary>event notification</secondary>
|
||||||
|
</indexterm>
|
||||||
|
<term><varname>child_node_reconnect</varname></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
This event is generated after <application>repmgrd</application>
|
||||||
|
detects that a child node has resumed streaming from the primary node.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Example:
|
||||||
|
<programlisting>
|
||||||
|
$ repmgr cluster event --event=child_node_reconnect
|
||||||
|
Node ID | Name | Event | OK | Timestamp | Details
|
||||||
|
---------+-------+----------------------+----+---------------------+------------------------------------------------------------
|
||||||
|
1 | node1 | child_node_reconnect | t | 2019-04-24 12:42:19 | node "node3" (node ID: 3) has reconnected after 42 seconds</programlisting>
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<indexterm>
|
||||||
|
<primary>child_node_new_connect</primary>
|
||||||
|
<secondary>event notification</secondary>
|
||||||
|
</indexterm>
|
||||||
|
<term><varname>child_node_new_connect</varname></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
This event is generated after <application>repmgrd</application>
|
||||||
|
detects that a new child node has been registered with &repmgr; and has
|
||||||
|
connected to the primary.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Example:
|
||||||
|
<programlisting>
|
||||||
|
$ repmgr cluster event --event=child_node_new_connect
|
||||||
|
Node ID | Name | Event | OK | Timestamp | Details
|
||||||
|
---------+-------+------------------------+----+---------------------+---------------------------------------------
|
||||||
|
1 | node1 | child_node_new_connect | t | 2019-04-24 12:41:30 | new node "node3" (node ID: 3) has connected</programlisting>
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<indexterm>
|
||||||
|
<primary>child_nodes_disconnect_command</primary>
|
||||||
|
<secondary>event notification</secondary>
|
||||||
|
</indexterm>
|
||||||
|
<term><varname>child_nodes_disconnect_command</varname></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
This event is generated after <application>repmgrd</application> detects
|
||||||
|
that sufficient child nodes have been disconnected for a sufficient amount
|
||||||
|
of time to trigger execution of the <varname>child_nodes_disconnect_command</varname>.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Example:
|
||||||
|
<programlisting>
|
||||||
|
$ repmgr cluster event --event=child_nodes_disconnect_command
|
||||||
|
Node ID | Name | Event | OK | Timestamp | Details
|
||||||
|
---------+-------+--------------------------------+----+---------------------+--------------------------------------------------------
|
||||||
|
1 | node1 | child_nodes_disconnect_command | t | 2019-04-24 13:08:17 | "child_nodes_disconnect_command" successfully executed</programlisting>
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
</variablelist>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user