MXS-2325 Only enable events that were enabled on the master
The monitor now continuously updates a list of enabled server events. When promoting a new master in failover/switchover, only events that were enabled on the previous master are enabled on the new. This avoids enabling events that may have been disabled on the master yet stayed in the SLAVESIDE_DISABLED- state on the slave. In the case of reset-replication command, events on the new master are only enabled if the monitor had a master when the command was launched. Otherwise all events remain disabled.
This commit is contained in:
@ -155,14 +155,21 @@ bool SlaveStatus::should_be_copied(string* ignore_reason_out) const
|
||||
return accepted;
|
||||
}
|
||||
|
||||
ServerOperation::ServerOperation(MariaDBServer* target, bool was_is_master,
|
||||
bool handle_events, const std::string& sql_file,
|
||||
const SlaveStatusArray& conns_to_copy)
|
||||
ServerOperation::ServerOperation(MariaDBServer* target, bool was_is_master, bool handle_events,
|
||||
const std::string& sql_file, const SlaveStatusArray& conns_to_copy,
|
||||
const EventNameSet& events_to_enable)
|
||||
: target(target)
|
||||
, to_from_master(was_is_master)
|
||||
, handle_events(handle_events)
|
||||
, sql_file(sql_file)
|
||||
, conns_to_copy(conns_to_copy)
|
||||
, events_to_enable(events_to_enable)
|
||||
{
|
||||
}
|
||||
|
||||
ServerOperation::ServerOperation(MariaDBServer* target, bool was_is_master, bool handle_events,
|
||||
const std::string& sql_file)
|
||||
: ServerOperation(target, was_is_master, handle_events, sql_file, {}, {})
|
||||
{
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user