Log only one warning when failover is initiated
Mysqlmon would log a warning at every monitoring interval when failover was initiated.
This commit is contained in:
@ -77,6 +77,7 @@ typedef struct
|
|||||||
bool failover; /**< If simple failover is enabled */
|
bool failover; /**< If simple failover is enabled */
|
||||||
int failcount; /**< How many monitoring cycles servers must be
|
int failcount; /**< How many monitoring cycles servers must be
|
||||||
down before failover is initiated */
|
down before failover is initiated */
|
||||||
|
bool warn_failover; /**< Log a warning when failover happens */
|
||||||
} MYSQL_MONITOR;
|
} MYSQL_MONITOR;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -275,6 +275,7 @@ startMonitor(MONITOR *monitor, const CONFIG_PARAMETER* params)
|
|||||||
handle->mysql51_replication = false;
|
handle->mysql51_replication = false;
|
||||||
handle->failover = false;
|
handle->failover = false;
|
||||||
handle->failcount = MYSQLMON_DEFAULT_FAILCOUNT;
|
handle->failcount = MYSQLMON_DEFAULT_FAILCOUNT;
|
||||||
|
handle->warn_failover = true;
|
||||||
memset(handle->events, false, sizeof(handle->events));
|
memset(handle->events, false, sizeof(handle->events));
|
||||||
spinlock_init(&handle->lock);
|
spinlock_init(&handle->lock);
|
||||||
}
|
}
|
||||||
@ -1093,11 +1094,12 @@ void do_failover(MYSQL_MONITOR *handle, MONITOR_SERVERS *db)
|
|||||||
{
|
{
|
||||||
if (SERVER_IS_RUNNING(db->server))
|
if (SERVER_IS_RUNNING(db->server))
|
||||||
{
|
{
|
||||||
if (!SERVER_IS_MASTER(db->server))
|
if (!SERVER_IS_MASTER(db->server) && handle->warn_failover)
|
||||||
{
|
{
|
||||||
MXS_WARNING("Failover initiated, server '%s' is now the master. "
|
MXS_WARNING("Failover initiated, server '%s' is now the master. "
|
||||||
"All other servers are set into maintenance mode.",
|
"All other servers are set into maintenance mode.",
|
||||||
db->server->unique_name);
|
db->server->unique_name);
|
||||||
|
handle->warn_failover = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
server_clear_set_status(db->server, SERVER_SLAVE, SERVER_MASTER);
|
server_clear_set_status(db->server, SERVER_SLAVE, SERVER_MASTER);
|
||||||
@ -1397,6 +1399,10 @@ monitorMain(void *arg)
|
|||||||
/** Other servers have died, initiate a failover to the last remaining server */
|
/** Other servers have died, initiate a failover to the last remaining server */
|
||||||
do_failover(handle, mon->databases);
|
do_failover(handle, mon->databases);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
handle->warn_failover = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ptr = mon->databases;
|
ptr = mon->databases;
|
||||||
|
Reference in New Issue
Block a user