mysqlrpladmin 是一个MySQL复制的管理工具。设计的目的为了很容易的恢复计划性对主的维护或者以一个事件让主意外离线。
使主离线和切换控制另一个从。在这种情况下,主上没有任何事务的丢失,所有的从都可以赶上主。一旦从已经从主上读取所有的事件,将主关闭掉并切换为从。
恢复当掉的主是件痛苦的事,无法知道哪些事务是失败的。新的主(候选从)必需是最新最近的从,这取决于服务器的版本。但是,也会存在事务在当掉的主上执行完但没有发给从。该工具从从列表中选择考虑候选从。如果没有从符合要求,该操作将搜索已知的从列表。
该工具还提供了以下的命令来管理复制拓扑,如下:
elect 该命令只提供给支持全局事务标识符(GTIDs)服务器,选举最好的从,在切换或故障转移时报告最好的从。最好从选举第一个满足先决条件的从。GTIDs需要5.6.5或更高的版本。该命令需要–master 选项,要么 –slaves 或者 –discover-slaves-login 选项。
failover 该命令只提供给支持全局事务标识符(GTIDs)服务器。切换到最佳的从上。该命令将测试列出的先决条件的每个候选从。一旦候选从被选中,将是其他从的主,收集其他不是候选从上执行的事务。这种方式,候选从将是最佳最新的从。该命令需要–slaves选项。不允许–discover-slaves-login选项,因为对于故障转移,主需要脱机或其他原因不可到达,因此没法发现从。对于这个命令–master选项忽略。
gtid 该命令只提供给支持全局事务标识符(GTIDs)服务器。显示GTID变量@@GLOBAL.GTID_EXECUTED, @@GLOBAL.GTID_PURGED, @@GLOBAL.GTID_OWNED内容。还显示所有服务器的全局唯一标识符(UUID)。该命令需要下面的组合之一的选项:–master 和 –slaves 或者 –master 和 –discover-slaves-login。
health 显示复制拓扑的状况。默认情况下,显示主机名、端口、服务器角色(master或者slave)、服务器状态(UP = is connected, WARN = not connected but can ping, DOWN = not connected and cannot ping)、GTID_MODE、健康状态。该命令需要下面的组合之一:
主的健康状态基于如果GTID_MODE=ON时,服务器必需开启二进制日志,且必需存在具有REPLICATE SLAVE权限的用户。
从的健康状态基于IO_THREAD 和 SQL_THREADS 必需运行,必需连接到主,没有错误,没有启用GTID的落后从不超过–max-position选项指定的阀值,从正在读取正确的主日志文件,从延迟不高于–seconds-behind 选项阀值。
reset 在所有从上执行 STOP SLAVE 和 RESET SLAVE 命令。需要–slaves选项。不允许–discover-slaves-login 选项,因为不能提供除了从IO线程停止的其它预期的结果。可以使用–master选项,在这种情况下,将执行额外的检查来确保从是否关联到给定的主,也就是复制的配置。
start 在所有从上执行START SLAVE命令。需要–slaves选项。不允许–discover-slaves-login 选项,因为不能提供除了从IO线程停止的其它预期的结果。可以使用–master选项,在这种情况下,将执行额外的检查来确保从是否关联到给定的主,也就是复制的配置。
stop 在所有从上执行STOP SLAVE 命令。需要–slaves选项。不允许–discover-slaves-login 选项,因为不能提供除了从IO线程停止的其它预期的结果。可以使用–master选项,在这种情况下,将执行额外的检查来确保从是否关联到给定的主,也就是复制的配置。
switchover 将候选从切换为新主。该命令适用于启用GTID服务器和没启用GTID场景。该命令需要下面的组合之一:
判定主失效的依据是:如果连接到主丢失,等待–ping秒数并再次检查。如果主连接丢失和主无法ping通或重新连接,故障转移事件发生。
对于需要指定多个服务器的命令,参数需要以逗号分隔。形式如下: