diff --git a/doc/bookindex.sgml b/doc/bookindex.sgml
new file mode 100644
index 00000000..fef34cb6
--- /dev/null
+++ b/doc/bookindex.sgml
@@ -0,0 +1,970 @@
+
+
+
+
+
+
+A
+
+
+ archive_command
+
+ PostgreSQL configuration,
+ PostgreSQL configuration for repmgr
+
+
+
+
+ archive_mode
+
+ PostgreSQL configuration,
+ PostgreSQL configuration for repmgr
+
+
+
+
+B
+
+
+ Barman
+
+ cloning a standby,
+ Cloning a standby from Barman
+
+ fetching archived WAL,
+ Using Barman as a WAL file source
+
+
+
+
+ BDR,
+ BDR failover with repmgrd
+
+
+
+
+C
+
+
+ cascading replication
+
+ repmgrd,
+ repmgrd and cascading replication
+
+
+
+
+ CentOS
+
+ package information,
+ CentOS Packages
+
+
+
+
+ cloning
+
+ advanced options,
+ Advanced cloning options
+
+ cascading replication,
+ Cloning and cascading replication
+
+ from Barman,
+ Cloning a standby from Barman
+
+ replication slots,
+ Cloning and replication slots
+
+ using passwords,
+ Managing passwords
+
+
+
+
+ compatibility matrix,
+ repmgr compatibility matrix
+
+
+
+
+ concepts,
+ Concepts
+
+
+
+
+ configuration
+
+ database user permissions,
+ repmgr database user permissions
+
+ PostgreSQL,
+ PostgreSQL configuration for repmgr
+
+ prerequisites,
+ Prerequisites for configuration
+
+ repmgr.conf,
+ Configuration file
+
+ ssh,
+ Prerequisites for configuration
+
+
+
+
+ connection_check_type,
+ repmgrd configuration
+
+
+
+
+ conninfo configuration file parameter,
+ Required configuration file settings
+
+
+
+
+D
+
+
+ data_directory configuration file parameter,
+ Required configuration file settings
+
+
+
+
+ Debian/Ubuntu
+
+ package information,
+ Debian/Ubuntu Packages
+
+ repmgrd daemon configuration,
+ repmgrd daemon configuration on Debian/Ubuntu
+
+
+
+
+ degraded monitoring,
+ "degraded monitoring" mode
+
+
+
+
+ degraded_monitoring_timeout,
+ repmgrd configuration
+
+
+
+
+E
+
+
+ election_rerun_interval,
+ Optional configuration for automatic failover
+
+
+
+
+ event notifications,
+ Event Notifications
+
+
+
+
+F
+
+
+ failover,
+ Required configuration for automatic failover
+
+
+
+
+ failover validation,
+ Failover validation
+
+
+
+
+ failover_validation_command,
+ Optional configuration for automatic failover
+
+
+
+
+ FAQ (Frequently Asked Questions),
+ FAQ (Frequently Asked Questions)
+
+
+
+
+ Following a new primary,
+ Following a new primary
+
+ repmgr standby follow
+
+
+
+ follow_command,
+ Required configuration for automatic failover
+
+
+
+
+H
+
+
+ hot_standby
+
+ PostgreSQL configuration,
+ PostgreSQL configuration for repmgr
+
+
+
+
+I
+
+
+ installation,
+ Installation
+
+ from packages,
+ Installing repmgr from packages
+
+ from source,
+ Installing repmgr from source
+
+ old package versions,
+ Installing old package versions
+
+ on Debian/Ubuntu etc.,
+ Debian/Ubuntu
+
+ on Red Hat/CentOS/Fedora etc.,
+ RedHat/CentOS/Fedora
+
+ requirements,
+ Requirements for installing repmgr
+
+
+
+
+L
+
+
+ log rotation
+
+ repmgrd,
+ repmgrd log rotation
+
+
+
+
+ log settings
+
+ configuration in repmgr.conf,
+ Log settings
+
+
+
+
+ log_facility configuration file parameter,
+ Log settings
+
+
+
+
+ log_file configuration file parameter,
+ Log settings
+
+
+
+
+ log_level configuration file parameter,
+ Log settings
+
+
+
+
+ log_status_interval configuration file parameter,
+ Log settings
+
+
+
+
+M
+
+
+ max_replication_slots
+
+ PostgreSQL configuration,
+ PostgreSQL configuration for repmgr
+
+
+
+
+ max_wal_senders
+
+ PostgreSQL configuration,
+ PostgreSQL configuration for repmgr
+
+
+
+
+ monitoring
+
+ with repmgrd,
+ Storing monitoring data
+
+
+
+
+ monitor_interval_secs,
+ repmgrd configuration
+
+
+
+
+N
+
+
+ network splits,
+ Handling network splits with repmgrd
+
+
+
+
+ node_id configuration file parameter,
+ Required configuration file settings
+
+
+
+
+ node_name configuration file parameter,
+ Required configuration file settings
+
+
+
+
+ node_rejoin_timeout
+
+ with "repmgr standby switchover",
+ Configuration file settings
+
+
+
+
+O
+
+
+ old packages,
+ Installing old package versions
+
+
+
+
+P
+
+
+ packages,
+ repmgr package details
+
+ CentOS packages,
+ CentOS Packages
+
+ Debian/Ubuntu packages,
+ Debian/Ubuntu Packages
+
+ information for packagers,
+ Information for packagers
+
+ old versions,
+ Installing old package versions
+
+ snaphots,
+ Snapshot packages
+
+
+
+
+ pausing repmgrd,
+ Pausing repmgrd
+
+
+
+
+ pg_ctlcluster
+
+ service command settings,
+ Service command settings
+
+
+
+
+ pg_rewind
+
+ using with "repmgr node rejoin",
+ Using pg_rewind
+
+ using with "repmgr standby switchover",
+ Switchover and pg_rewind
+
+
+
+
+ pg_upgrade,
+ pg_upgrade and repmgr
+
+
+
+
+ PID file
+
+ repmgrd,
+ repmgrd's PID file
+
+
+
+
+ PostgreSQL configuration,
+ PostgreSQL configuration for repmgr
+
+
+
+
+ priority,
+ Optional configuration for automatic failover
+
+
+
+
+ promote_check_interval
+
+ with "repmgr standby promote ",
+ Configuration file settings
+
+
+
+
+ promote_check_timeout
+
+ with "repmgr standby promote ",
+ Configuration file settings
+
+
+
+
+ promote_command,
+ Required configuration for automatic failover
+
+
+
+
+ promoting a standby,
+ Promoting a standby server with repmgr
+
+ repmgr standby promote
+
+
+
+Q
+
+
+ quickstart,
+ Quick-start guide
+
+
+
+
+R
+
+
+ reconnect_attempts,
+ repmgrd configuration
+
+
+
+
+ reconnect_interval,
+ repmgrd configuration
+
+
+
+
+ recovery.conf
+
+ customising with "repmgr standby clone",
+ Customising recovery.conf
+
+ generating for a standby cloned by another method,
+ Using a standby cloned by another method
+
+
+
+
+ Release notes,
+ Release notes
+
+
+
+
+ replication slots
+
+ cloning,
+ Cloning and replication slots
+
+
+
+
+ replication_lag_critical
+
+ with "repmgr standby switchover",
+ Configuration file settings
+
+
+
+
+ repmgr
+
+ compatibility matrix,
+ repmgr compatibility matrix
+
+
+
+
+ repmgr cluster cleanup,
+ repmgr cluster cleanup
+
+
+
+
+ repmgr cluster crosscheck,
+ repmgr cluster crosscheck
+
+
+
+
+ repmgr cluster event,
+ repmgr cluster event
+
+
+
+
+ repmgr cluster matrix,
+ repmgr cluster matrix
+
+
+
+
+ repmgr cluster show,
+ repmgr cluster show
+
+
+
+
+ repmgr daemon pause,
+ repmgr daemon pause
+
+
+
+
+ repmgr daemon start,
+ repmgr daemon start
+
+
+
+
+ repmgr daemon status,
+ repmgr daemon status
+
+
+
+
+ repmgr daemon stop,
+ repmgr daemon stop
+
+
+
+
+ repmgr daemon unpause,
+ repmgr daemon unpause
+
+
+
+
+ repmgr node check,
+ repmgr node check
+
+
+
+
+ repmgr node rejoin,
+ repmgr node rejoin
+
+ caveats,
+ Caveats when using repmgr node rejoin
+
+
+
+
+ repmgr node service,
+ repmgr node service
+
+
+
+
+ repmgr node status,
+ repmgr node status
+
+
+
+
+ repmgr primary register,
+ repmgr primary register
+
+
+
+
+ repmgr primary unregister,
+ repmgr primary unregister
+
+
+
+
+ repmgr standby clone,
+ repmgr standby clone
+
+ cloning
+
+
+
+ repmgr standby follow,
+ repmgr standby follow
+
+
+
+
+ repmgr standby promote,
+ repmgr standby promote
+
+
+
+
+ repmgr standby register,
+ repmgr standby register
+
+
+
+
+ repmgr standby switchover,
+ repmgr standby switchover
+
+
+
+
+ repmgr standby unregister,
+ repmgr standby unregister
+
+
+
+
+ repmgr witness register,
+ repmgr witness register
+
+ witness server
+
+
+
+ repmgr witness unregister,
+ repmgr witness unregister
+
+
+
+
+ repmgr.conf,
+ Configuration file
+
+ format,
+ Configuration file format
+
+ location,
+ Configuration file location
+
+ log settings,
+ Log settings
+
+ required settings,
+ Required configuration file settings
+
+ service command settings,
+ Service command settings
+
+
+
+
+ repmgrd
+
+ applying configuration changes,
+ Applying configuration changes to repmgrd
+
+ automatic failover,
+ Automatic failover with repmgrd
+
+ BDR,
+ BDR failover with repmgrd
+
+ cascading replication,
+ repmgrd and cascading replication
+
+ configuration,
+ repmgrd setup and configuration
+
+ Debian/Ubuntu and daemon configuration,
+ repmgrd daemon configuration on Debian/Ubuntu
+
+ degraded monitoring,
+ "degraded monitoring" mode
+
+ displaying daemon status,
+ repmgr daemon status
+
+ failover validation,
+ Failover validation
+
+ log rotation,
+ repmgrd log rotation
+
+ monitoring,
+ Storing monitoring data
+
+ monitoring configuration,
+ Monitoring configuration
+
+ network splits,
+ Handling network splits with repmgrd
+
+ operation,
+ repmgrd operation
+
+ overview,
+ repmgrd overview
+
+ paused WAL replay,
+ repmgrd and paused WAL replay
+
+ pausing,
+ Pausing repmgrd,
+ repmgr daemon pause
+
+ PID file,
+ repmgrd's PID file
+
+ PostgreSQL service configuration,
+ PostgreSQL service configuration
+
+ repmgrd service configuration,
+ repmgrd service configuration
+
+ standby disconnection on failover,
+ Standby disconnection on failover
+
+ starting,
+ repmgr daemon start
+
+ starting and stopping,
+ repmgrd daemon
+
+ stopping,
+ repmgr daemon stop
+
+ unpausing,
+ repmgr daemon unpause
+
+ witness server,
+ Using a witness server
+
+
+
+
+ repmgrd_service_start_command
+
+ with "repmgr daemon start",
+ Configuration file settings
+
+
+
+
+ repmgrd_service_stop_command
+
+ with "repmgr daemon stop",
+ Configuration file settings
+
+
+
+
+S
+
+
+ service command settings
+
+ configuration in repmgr.conf,
+ Service command settings
+
+
+
+
+ shutdown_check_timeout
+
+ with "repmgr standby switchover",
+ Configuration file settings
+
+
+
+
+ sibling_nodes_disconnect_timeout,
+ Optional configuration for automatic failover
+
+
+
+
+ snapshot packages,
+ Snapshot packages
+
+
+
+
+ standby disconnection on failover,
+ Standby disconnection on failover
+
+
+
+
+ standby_disconnect_on_failover,
+ Optional configuration for automatic failover
+
+
+
+
+ standby_reconnect_timeout
+
+ with "repmgr standby switchover",
+ Configuration file settings
+
+
+
+
+ support,
+ repmgr support
+
+ reporting issues,
+ Reporting Issues
+
+
+
+
+ switchover,
+ Performing a switchover with repmgr
+
+ caveats,
+ Caveats
+
+ execution,
+ Executing the switchover command
+
+ preparation,
+ Preparing for switchover
+
+ troubleshooting,
+ Troubleshooting switchover issues
+
+
+
+
+U
+
+
+ upgrading,
+ Upgrading repmgr
+
+ checking repmgrd status,
+ Checking repmgrd status after an upgrade
+
+ from repmgr 3.x,
+ Upgrading from repmgr 3.x
+
+ major release,
+ Upgrading a major version release
+
+ minor release,
+ Upgrading a minor version release
+
+ pg_upgrade,
+ pg_upgrade and repmgr
+
+ repmgr 4.x and later,
+ Upgrading repmgr 4.x and later
+
+
+
+
+W
+
+
+ wal_keep_segments
+
+ PostgreSQL configuration,
+ PostgreSQL configuration for repmgr
+
+
+
+
+ wal_level
+
+ PostgreSQL configuration,
+ PostgreSQL configuration for repmgr
+
+
+
+
+ wal_log_hints
+
+ PostgreSQL configuration,
+ PostgreSQL configuration for repmgr
+
+
+
+
+ wal_receive_check_timeout
+
+ with "repmgr standby switchover",
+ Configuration file settings
+
+
+
+
+ witness server
+
+ repmgrd,
+ Using a witness server
+
+
+
+
+
diff --git a/doc/repmgrd-automatic-failover.xml b/doc/repmgrd-automatic-failover.xml
index bbd393eb..35e5ab9d 100644
--- a/doc/repmgrd-automatic-failover.xml
+++ b/doc/repmgrd-automatic-failover.xml
@@ -408,11 +408,11 @@ INFO: node 3 received notification to rerun promotion candidate election
When running on the primary node, &repmgrd; can
monitor connections and in particular disconnections by its attached
- child nodes (standbys), and optionally execute a custom command
- if certain criteria are met (such as the number of attached nodes falling to
- zero following a failover to a new primary); this command can be used for
- example to "fence" the node and ensure it is isolated from any
- applications attempting to access the replication cluster.
+ child nodes (standbys, and if in use, the witness server), and optionally
+ execute a custom command if certain criteria are met (such as the number of
+ attached nodes falling to zero following a failover to a new primary); this
+ command can be used for example to "fence" the node and ensure it
+ is isolated from any applications attempting to access the replication cluster.
@@ -429,7 +429,7 @@ INFO: node 3 received notification to rerun promotion candidate election
Standby disconnections monitoring process and criteria
- &repmgrd; monitors attach child nodes and decides
+ &repmgrd; monitors attached child nodes and decides
whether to invoke the user-defined command based on the following process
and criteria:
@@ -442,6 +442,10 @@ INFO: node 3 received notification to rerun promotion candidate election
the nodes present there against the list of nodes registered with &repmgr; which
should be attached to the primary.
+
+ If a witness server is in use, &repmgrd; connects to it and checks which upstream node
+ it is following.
+
@@ -450,19 +454,30 @@ INFO: node 3 received notification to rerun promotion candidate election
&repmgrd; notes the time it detected the node's absence, and additionally generates a
child_node_disconnect event.
+
+ If a witness server is in use, and it is no longer following the primary, or not
+ reachable at all, &repmgrd; notes the time it detected the node's absence, and additionally generates a
+ child_node_disconnect event.
+
- If a chile node (standby) which was absent from pg_stat_replication reappears,
+ If a child node (standby) which was absent from pg_stat_replication reappears,
&repmgrd; clears the time it detected the node's absence, and additionally generates a
child_node_reconnect event.
+
+ If a witness server is in use, which was previously not reachable or not following the
+ primary node, has become reachable and is following the primary node, &repmgrd; clears the
+ time it detected the node's absence, and additionally generates a
+ child_node_reconnect event.
+
- If an entirely new child node (standby) is detected, &repmgrd; adds it to its internal list
+ If an entirely new child node (standby or witness) is detected, &repmgrd; adds it to its internal list
and additionally generates a child_node_new_connect event.