// StartSlave will start the replication. Works both when Vitess manages // replication or not (using hook if not). func (agent *ActionAgent) StartSlave(ctx context.Context) error { if err := agent.lock(ctx); err != nil { return err } defer agent.unlock() agent.setSlaveStopped(false) // Tell Orchestrator we're no longer stopped on purpose. // Do this in the background, as it's best-effort. go func() { if agent.orc == nil { return } if err := agent.orc.EndMaintenance(agent.Tablet()); err != nil { log.Warningf("Orchestrator EndMaintenance failed: %v", err) } }() if *enableSemiSync { if err := agent.enableSemiSync(false); err != nil { return err } } return mysqlctl.StartSlave(agent.MysqlDaemon, agent.hookExtraEnv()) }
// StartSlave will start the replication. Works both when Vitess manages // replication or not (using hook if not). // Should be called under RPCWrapLock. func (agent *ActionAgent) StartSlave(ctx context.Context) error { if *enableSemiSync { if err := agent.enableSemiSync(false); err != nil { return err } } return mysqlctl.StartSlave(agent.MysqlDaemon, agent.hookExtraEnv()) }
// StartSlave will start the replication. Works both when Vitess manages // replication or not (using hook if not). // Should be called under RPCWrapLock. func (agent *ActionAgent) StartSlave(ctx context.Context) error { return mysqlctl.StartSlave(agent.MysqlDaemon, agent.hookExtraEnv()) }