mirror of
https://github.com/EnterpriseDB/repmgr.git
synced 2026-03-22 22:56:29 +00:00
Add configure option --with-bdr-only
Builds repmgr with only BDR functionality; other code is disabled at critical points.
This commit is contained in:
17
config.h.in
17
config.h.in
@@ -3,20 +3,3 @@
|
||||
/* Only build repmgr for BDR */
|
||||
#undef BDR_ONLY
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#undef PACKAGE_BUGREPORT
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#undef PACKAGE_NAME
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#undef PACKAGE_STRING
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#undef PACKAGE_TARNAME
|
||||
|
||||
/* Define to the home page for this package. */
|
||||
#undef PACKAGE_URL
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#undef PACKAGE_VERSION
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _REPMGR_CONFIG_H_
|
||||
#define _REPMGR_CONFIG_H_
|
||||
#ifndef _REPMGR_CONFIGFILE_H_
|
||||
#define _REPMGR_CONFIGFILE_H_
|
||||
|
||||
#include <getopt_long.h>
|
||||
|
||||
|
||||
@@ -574,6 +574,7 @@ main(int argc, char **argv)
|
||||
|
||||
if (repmgr_node_type != NULL)
|
||||
{
|
||||
#ifndef BDR_ONLY
|
||||
if (strcasecmp(repmgr_node_type, "PRIMARY") == 0 || strcasecmp(repmgr_node_type, "MASTER") == 0 )
|
||||
{
|
||||
if (strcasecmp(repmgr_action, "REGISTER") == 0)
|
||||
@@ -601,8 +602,10 @@ main(int argc, char **argv)
|
||||
else if (strcasecmp(repmgr_action, "RESTORE-CONFIG") == 0)
|
||||
action = STANDBY_RESTORE_CONFIG;
|
||||
}
|
||||
|
||||
else if (strcasecmp(repmgr_node_type, "BDR") == 0)
|
||||
#else
|
||||
if (strcasecmp(repmgr_node_type, "BDR") == 0)
|
||||
#endif
|
||||
{
|
||||
if (strcasecmp(repmgr_action, "REGISTER") == 0)
|
||||
action = BDR_REGISTER;
|
||||
@@ -776,8 +779,7 @@ main(int argc, char **argv)
|
||||
*/
|
||||
if (config_file_options.node_id == NODE_NOT_FOUND)
|
||||
{
|
||||
log_error(_("no node information was found - "
|
||||
"please supply a configuration file"));
|
||||
log_error(_("no node information was found - please supply a configuration file"));
|
||||
exit(ERR_BAD_CONFIG);
|
||||
}
|
||||
}
|
||||
@@ -856,6 +858,7 @@ main(int argc, char **argv)
|
||||
|
||||
switch (action)
|
||||
{
|
||||
#ifndef BDR_ONLY
|
||||
/* PRIMARY */
|
||||
case PRIMARY_REGISTER:
|
||||
do_primary_register();
|
||||
@@ -889,7 +892,21 @@ main(int argc, char **argv)
|
||||
case STANDBY_RESTORE_CONFIG:
|
||||
do_standby_restore_config();
|
||||
break;
|
||||
#else
|
||||
/* we won't ever reach here, but stop the compiler complaining */
|
||||
case PRIMARY_REGISTER:
|
||||
case PRIMARY_UNREGISTER:
|
||||
case STANDBY_CLONE:
|
||||
case STANDBY_REGISTER:
|
||||
case STANDBY_UNREGISTER:
|
||||
case STANDBY_PROMOTE:
|
||||
case STANDBY_FOLLOW:
|
||||
case STANDBY_SWITCHOVER:
|
||||
case STANDBY_ARCHIVE_CONFIG:
|
||||
case STANDBY_RESTORE_CONFIG:
|
||||
break;
|
||||
|
||||
#endif
|
||||
/* BDR */
|
||||
case BDR_REGISTER:
|
||||
do_bdr_register();
|
||||
@@ -1242,12 +1259,14 @@ do_help(void)
|
||||
}
|
||||
|
||||
printf(_("Usage:\n"));
|
||||
#ifndef BDR_ONLY
|
||||
printf(_(" %s [OPTIONS] primary register\n"), progname());
|
||||
printf(_(" %s [OPTIONS] primary unregister\n"), progname());
|
||||
printf(_(" %s [OPTIONS] standby clone\n"), progname());
|
||||
printf(_(" %s [OPTIONS] standby register\n"), progname());
|
||||
printf(_(" %s [OPTIONS] standby unregister\n"), progname());
|
||||
printf(_(" %s [OPTIONS] standby promote\n"), progname());
|
||||
#endif
|
||||
printf(_(" %s [OPTIONS] bdr register\n"), progname());
|
||||
printf(_(" %s [OPTIONS] bdr unregister\n"), progname());
|
||||
printf(_(" %s [OPTIONS] cluster event\n"), progname());
|
||||
|
||||
7
repmgr.h
7
repmgr.h
@@ -2,6 +2,12 @@
|
||||
* repmgr.h
|
||||
* Copyright (c) 2ndQuadrant, 2010-2017
|
||||
*/
|
||||
|
||||
#ifndef _REPMGR_CONFIG_H
|
||||
#define _REPMGR_CONFIG_H
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
#ifndef _REPMGR_H_
|
||||
#define _REPMGR_H_
|
||||
|
||||
@@ -12,6 +18,7 @@
|
||||
#include <postgres_fe.h>
|
||||
#include <pqexpbuffer.h>
|
||||
|
||||
|
||||
#include "repmgr_version.h"
|
||||
#include "errcode.h"
|
||||
#include "strutil.h"
|
||||
|
||||
@@ -35,14 +35,15 @@ typedef enum {
|
||||
} ElectionResult;
|
||||
|
||||
|
||||
static PGconn *upstream_conn = NULL;
|
||||
static PGconn *primary_conn = NULL;
|
||||
|
||||
#ifndef BDR_ONLY
|
||||
static FailoverState failover_state = FAILOVER_STATE_UNKNOWN;
|
||||
|
||||
static t_node_info upstream_node_info = T_NODE_INFO_INITIALIZER;
|
||||
static NodeInfoList standby_nodes = T_NODE_INFO_LIST_INITIALIZER;
|
||||
|
||||
static PGconn *upstream_conn = NULL;
|
||||
static PGconn *primary_conn = NULL;
|
||||
|
||||
static ElectionResult do_election(void);
|
||||
static const char *_print_voting_status(NodeVotingStatus voting_status);
|
||||
@@ -62,12 +63,13 @@ void close_connections_physical();
|
||||
static bool do_primary_failover(void);
|
||||
static bool do_upstream_standby_failover(void);
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
void
|
||||
do_physical_node_check(void)
|
||||
{
|
||||
#ifndef BDR_ONLY
|
||||
/*
|
||||
* Check if node record is active - if not, and `failover_mode=automatic`, the node
|
||||
* won't be considered as a promotion candidate; this often happens when
|
||||
@@ -128,6 +130,7 @@ do_physical_node_check(void)
|
||||
exit(ERR_BAD_CONFIG);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -136,6 +139,7 @@ do_physical_node_check(void)
|
||||
void
|
||||
monitor_streaming_primary(void)
|
||||
{
|
||||
#ifndef BDR_ONLY
|
||||
NodeStatus node_status = NODE_STATUS_UP;
|
||||
instr_time log_status_interval_start;
|
||||
PQExpBufferData event_details;
|
||||
@@ -330,12 +334,14 @@ monitor_streaming_primary(void)
|
||||
|
||||
sleep(config_file_options.monitor_interval_secs);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
monitor_streaming_standby(void)
|
||||
{
|
||||
#ifndef BDR_ONLY
|
||||
RecordStatus record_status;
|
||||
NodeStatus upstream_node_status = NODE_STATUS_UP;
|
||||
instr_time log_status_interval_start;
|
||||
@@ -661,8 +667,10 @@ monitor_streaming_standby(void)
|
||||
}
|
||||
sleep(1);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifndef BDR_ONLY
|
||||
static bool
|
||||
do_primary_failover(void)
|
||||
{
|
||||
@@ -864,10 +872,12 @@ do_primary_failover(void)
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/* should never reach here */
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* do_upstream_standby_failover()
|
||||
*
|
||||
@@ -1682,6 +1692,8 @@ reset_node_voting_status(void)
|
||||
}
|
||||
|
||||
|
||||
#endif /* #ifndef BDR_ONLY */
|
||||
|
||||
void
|
||||
close_connections_physical()
|
||||
{
|
||||
@@ -1701,3 +1713,4 @@ close_connections_physical()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -362,12 +362,18 @@ start_monitoring(void)
|
||||
{
|
||||
switch (local_node_info.type)
|
||||
{
|
||||
#ifndef BDR_ONLY
|
||||
case PRIMARY:
|
||||
monitor_streaming_primary();
|
||||
break;
|
||||
case STANDBY:
|
||||
monitor_streaming_standby();
|
||||
break;
|
||||
#else
|
||||
case PRIMARY:
|
||||
case STANDBY:
|
||||
return;
|
||||
#endif
|
||||
case BDR:
|
||||
monitor_bdr();
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user