Remove 'failover_script' parameter
As the failover is now internal to MySQL Monitor, no failover script parameter is needed.
This commit is contained in:
@ -233,14 +233,6 @@ REST API or MaxAdmin.
|
|||||||
**Note:** The monitor user must have the SUPER privilege if the failover feature
|
**Note:** The monitor user must have the SUPER privilege if the failover feature
|
||||||
is enabled.
|
is enabled.
|
||||||
|
|
||||||
### `failover_script`
|
|
||||||
|
|
||||||
*NOTE* By default, MariaDB MaxScale uses the MariaDB provided failover
|
|
||||||
script, so `failover_script` need not be specified.
|
|
||||||
|
|
||||||
This command will be executed in order to perform a failover. `failover_script`
|
|
||||||
should be specified the same way as [script](./Monitor-Common.md#script) is.
|
|
||||||
|
|
||||||
### `failover_timeout`
|
### `failover_timeout`
|
||||||
|
|
||||||
The timeout for the cluster failover in seconds. The default value is 90
|
The timeout for the cluster failover in seconds. The default value is 90
|
||||||
|
@ -64,7 +64,6 @@ typedef struct
|
|||||||
bool warn_set_standalone_master; /**< Log a warning when setting standalone master */
|
bool warn_set_standalone_master; /**< Log a warning when setting standalone master */
|
||||||
bool allow_external_slaves; /**< Whether to allow usage of external slave servers */
|
bool allow_external_slaves; /**< Whether to allow usage of external slave servers */
|
||||||
bool failover; /**< If master failover is enabled */
|
bool failover; /**< If master failover is enabled */
|
||||||
char* failover_script; /**< Script to call for performing master failover */
|
|
||||||
uint32_t failover_timeout; /**< Timeout in seconds for the master failover */
|
uint32_t failover_timeout; /**< Timeout in seconds for the master failover */
|
||||||
bool switchover; /**< If master switchover is enabled */
|
bool switchover; /**< If master switchover is enabled */
|
||||||
char* switchover_script; /**< Script to call for performing master switchover */
|
char* switchover_script; /**< Script to call for performing master switchover */
|
||||||
|
@ -75,9 +75,7 @@ static void set_slave_heartbeat(MXS_MONITOR *, MXS_MONITORED_SERVER *);
|
|||||||
static int add_slave_to_master(long *, int, long);
|
static int add_slave_to_master(long *, int, long);
|
||||||
static bool isMySQLEvent(mxs_monitor_event_t event);
|
static bool isMySQLEvent(mxs_monitor_event_t event);
|
||||||
void check_maxscale_schema_replication(MXS_MONITOR *monitor);
|
void check_maxscale_schema_replication(MXS_MONITOR *monitor);
|
||||||
static bool mon_process_failover(MYSQL_MONITOR* monitor,
|
static bool mon_process_failover(MYSQL_MONITOR* monitor, uint32_t failover_timeout);
|
||||||
const char* failover_script,
|
|
||||||
uint32_t failover_timeout);
|
|
||||||
static bool do_failover(MYSQL_MONITOR* mon);
|
static bool do_failover(MYSQL_MONITOR* mon);
|
||||||
static bool update_gtid_slave_pos(MXS_MONITORED_SERVER *database, int64_t domain, MySqlServerInfo* info);
|
static bool update_gtid_slave_pos(MXS_MONITORED_SERVER *database, int64_t domain, MySqlServerInfo* info);
|
||||||
static bool update_replication_settings(MXS_MONITORED_SERVER *database, MySqlServerInfo* info);
|
static bool update_replication_settings(MXS_MONITORED_SERVER *database, MySqlServerInfo* info);
|
||||||
@ -86,7 +84,6 @@ static bool report_version_err = true;
|
|||||||
static const char* hb_table_name = "maxscale_schema.replication_heartbeat";
|
static const char* hb_table_name = "maxscale_schema.replication_heartbeat";
|
||||||
|
|
||||||
static const char CN_FAILOVER[] = "failover";
|
static const char CN_FAILOVER[] = "failover";
|
||||||
static const char CN_FAILOVER_SCRIPT[] = "failover_script";
|
|
||||||
static const char CN_FAILOVER_TIMEOUT[] = "failover_timeout";
|
static const char CN_FAILOVER_TIMEOUT[] = "failover_timeout";
|
||||||
static const char CN_SWITCHOVER[] = "switchover";
|
static const char CN_SWITCHOVER[] = "switchover";
|
||||||
static const char CN_SWITCHOVER_SCRIPT[] = "switchover_script";
|
static const char CN_SWITCHOVER_SCRIPT[] = "switchover_script";
|
||||||
@ -109,14 +106,6 @@ static const char CN_REPLICATION_PASSWORD[] = "replication_password";
|
|||||||
/** Default master failure verification timeout */
|
/** Default master failure verification timeout */
|
||||||
#define DEFAULT_MASTER_FAILURE_TIMEOUT "10"
|
#define DEFAULT_MASTER_FAILURE_TIMEOUT "10"
|
||||||
|
|
||||||
// TODO: Specify the real default failover script.
|
|
||||||
static const char DEFAULT_FAILOVER_SCRIPT[] =
|
|
||||||
"/usr/bin/echo INITIATOR=$INITIATOR "
|
|
||||||
"PARENT=$PARENT CHILDREN=$CHILDREN EVENT=$EVENT "
|
|
||||||
"CREDENTIALS=$CREDENTIALS NODELIST=$NODELIST "
|
|
||||||
"LIST=$LIST MASTERLIST=$MASTERLIST "
|
|
||||||
"SLAVELIST=$SLAVELIST SYNCEDLIST=$SYNCEDLIST";
|
|
||||||
|
|
||||||
// TODO: Specify the real default switchover script.
|
// TODO: Specify the real default switchover script.
|
||||||
static const char DEFAULT_SWITCHOVER_SCRIPT[] =
|
static const char DEFAULT_SWITCHOVER_SCRIPT[] =
|
||||||
"/usr/bin/echo CURRENT_MASTER=$CURRENT_MASTER NEW_MASTER=$NEW_MASTER "
|
"/usr/bin/echo CURRENT_MASTER=$CURRENT_MASTER NEW_MASTER=$NEW_MASTER "
|
||||||
@ -550,12 +539,6 @@ MXS_MODULE* MXS_CREATE_MODULE()
|
|||||||
mxs_monitor_event_enum_values
|
mxs_monitor_event_enum_values
|
||||||
},
|
},
|
||||||
{CN_FAILOVER, MXS_MODULE_PARAM_BOOL, "false"},
|
{CN_FAILOVER, MXS_MODULE_PARAM_BOOL, "false"},
|
||||||
{
|
|
||||||
CN_FAILOVER_SCRIPT,
|
|
||||||
MXS_MODULE_PARAM_PATH,
|
|
||||||
NULL,
|
|
||||||
MXS_MODULE_OPT_PATH_X_OK
|
|
||||||
},
|
|
||||||
{CN_FAILOVER_TIMEOUT, MXS_MODULE_PARAM_COUNT, DEFAULT_FAILOVER_TIMEOUT},
|
{CN_FAILOVER_TIMEOUT, MXS_MODULE_PARAM_COUNT, DEFAULT_FAILOVER_TIMEOUT},
|
||||||
{CN_SWITCHOVER, MXS_MODULE_PARAM_BOOL, "false"},
|
{CN_SWITCHOVER, MXS_MODULE_PARAM_BOOL, "false"},
|
||||||
{
|
{
|
||||||
@ -859,7 +842,6 @@ startMonitor(MXS_MONITOR *monitor, const MXS_CONFIG_PARAMETER* params)
|
|||||||
handle->events = config_get_enum(params, "events", mxs_monitor_event_enum_values);
|
handle->events = config_get_enum(params, "events", mxs_monitor_event_enum_values);
|
||||||
handle->allow_external_slaves = config_get_bool(params, "allow_external_slaves");
|
handle->allow_external_slaves = config_get_bool(params, "allow_external_slaves");
|
||||||
handle->failover = config_get_bool(params, CN_FAILOVER);
|
handle->failover = config_get_bool(params, CN_FAILOVER);
|
||||||
handle->failover_script = config_copy_string(params, CN_FAILOVER_SCRIPT);
|
|
||||||
handle->failover_timeout = config_get_integer(params, CN_FAILOVER_TIMEOUT);
|
handle->failover_timeout = config_get_integer(params, CN_FAILOVER_TIMEOUT);
|
||||||
handle->switchover = config_get_bool(params, CN_SWITCHOVER);
|
handle->switchover = config_get_bool(params, CN_SWITCHOVER);
|
||||||
handle->switchover_script = config_copy_string(params, CN_SWITCHOVER_SCRIPT);
|
handle->switchover_script = config_copy_string(params, CN_SWITCHOVER_SCRIPT);
|
||||||
@ -2181,13 +2163,6 @@ monitorMain(void *arg)
|
|||||||
|
|
||||||
if (handle->failover)
|
if (handle->failover)
|
||||||
{
|
{
|
||||||
const char* failover_script = handle->failover_script;
|
|
||||||
|
|
||||||
if (!failover_script)
|
|
||||||
{
|
|
||||||
failover_script = DEFAULT_FAILOVER_SCRIPT;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (failover_not_possible(handle))
|
if (failover_not_possible(handle))
|
||||||
{
|
{
|
||||||
MXS_ERROR("Failover is not possible due to one or more problems in "
|
MXS_ERROR("Failover is not possible due to one or more problems in "
|
||||||
@ -2202,7 +2177,7 @@ monitorMain(void *arg)
|
|||||||
{
|
{
|
||||||
MXS_INFO("Master failure not yet confirmed by slaves, delaying failover.");
|
MXS_INFO("Master failure not yet confirmed by slaves, delaying failover.");
|
||||||
}
|
}
|
||||||
else if (!mon_process_failover(handle, failover_script, handle->failover_timeout))
|
else if (!mon_process_failover(handle, handle->failover_timeout))
|
||||||
{
|
{
|
||||||
MXS_ALERT("Failed to perform failover, disabling failover functionality. "
|
MXS_ALERT("Failed to perform failover, disabling failover functionality. "
|
||||||
"To enable failover functionality, manually set 'failover' to "
|
"To enable failover functionality, manually set 'failover' to "
|
||||||
@ -2979,7 +2954,6 @@ void check_maxscale_schema_replication(MXS_MONITOR *monitor)
|
|||||||
* This function should be called immediately after @c mon_process_state_changes.
|
* This function should be called immediately after @c mon_process_state_changes.
|
||||||
*
|
*
|
||||||
* @param monitor Monitor whose cluster is processed
|
* @param monitor Monitor whose cluster is processed
|
||||||
* @param failover_script The script to be used for performing the failover.
|
|
||||||
* @param failover_timeout Timeout in seconds for the failover
|
* @param failover_timeout Timeout in seconds for the failover
|
||||||
*
|
*
|
||||||
* @return True on success, false on error
|
* @return True on success, false on error
|
||||||
@ -2987,7 +2961,7 @@ void check_maxscale_schema_replication(MXS_MONITOR *monitor)
|
|||||||
* @todo Currently this only works with flat replication topologies and
|
* @todo Currently this only works with flat replication topologies and
|
||||||
* needs to be moved inside mysqlmon as it is MariaDB specific code.
|
* needs to be moved inside mysqlmon as it is MariaDB specific code.
|
||||||
*/
|
*/
|
||||||
bool mon_process_failover(MYSQL_MONITOR* monitor, const char* failover_script, uint32_t failover_timeout)
|
bool mon_process_failover(MYSQL_MONITOR* monitor, uint32_t failover_timeout)
|
||||||
{
|
{
|
||||||
bool rval = true;
|
bool rval = true;
|
||||||
MXS_CONFIG* cnf = config_get_global_options();
|
MXS_CONFIG* cnf = config_get_global_options();
|
||||||
|
Reference in New Issue
Block a user