技术文档

MySQL管理工具MySQL Utilities — mysqlfailover(40)

mysqlfailover 工具对复制进行健康检测和实现故障自动转移。该工具在定期的时间内进行间隔或持续的健康检测。主要任务是监视主失败,并在发送故障时候,自动执行故障切换到当前最优秀的从服务器上。

MySQL管理工具MySQL Utilities — mysqlfailover(40)

mysqlfailover工具被设计成专门为了支持全局事务标识符(GTIDs)服务器,gtid_mode=ON。因此MySQL Server版本需要5.6.5或更高来支持GTIDs。

使用–interval选项来定义检测主状态和产生健康报告的时间间隔。在每个时间间隔,该工具通过ping来检查服务器是否存活,随后,检查连接器来判断服务器是否可达。ping操作可以通过–ping选项控制。

如果主被发现是离线或无法访问,该工具将执行基于–failover-mode 选项值的动作。–failover-mode 选项值有:

auto:执行故障自动转移到第一候选人。如果没有从可行的,继续从从列表中找到一个可行的候选者。如果没有从被认为是一个可行的候选者,该程序将生成错误并退出。一旦候选者被发现,该程序将进行故障切换到最佳从上。该命令将测试每个候选从的先决条件。一旦候选从被选中,其他从作为它的从,收集其他从的任何事务交易。这种方式,确保候选者是最新的从。

elect:这种模式与aoto一样的,除了如果在指定的候选从列表中没有可行的,不检测剩余的从和产生错误并退出。

fail: 这种模式会产生一个错误,当主失败后不会进行故障转移。这种模式被用来只进行定期健康监测不进行故障切换。

所有选项允许指定对个服务器,这些选项要求以逗号分隔,格式如下:<*user*>[:<*passwd*>]@<*host*>[:<*port*>][:<*socket*>] 或者<*login-path*>[:<*port*>][:<*socket*>]

该工具允许用户连接到主自动发现从。为了使用自动发现从功能,所有从必需使用–report-host 和 –report-port 启动参数。如果这些缺失或报告不正确的信息,从健康可能无法正确报告或从可能不会全部列出。对于无法连接到的从自动发现从功能将被忽略。在每个间隔内发现从功能自动运行。

该工具允许用户指定外部脚本在切换和故障转移命令之前或之后执行。用户可以通过–exec-before 和 –exec-after 选项指定。脚本的返回码来确定是否成功执行,0表示成功,非0表示失败并返回错误信息。

该工具还允许用户指定特定的脚本来检测主当掉或应用程序级别的事件来触发故障转移。通过–exec-fail-check选项来指定。脚本的返回码用于调用故障转移。返回码0表示故障不发生。非0表示发生。如果该脚本指定,在每个间隔开始检测。在此情况下,timeout选项没有使用。该脚本在每个间隔时间执行一次。

该工具还允许用户记录命令期间的所有动作。–log 选项需要指定有效的路径和文件名。只有该选项指定了,该功能才生效。–log-age 选项用于指定日志存放天数,默认是7天。旧的日志自动轮滚掉。日志的格式包括的项目有事件的日期和时间、事件的级别(informational – INFO, warning – WARN, error – ERROR, critical failure – CRITICAL)和消息。

该接口为用户提供了许多选项用于显示附加信息。用户可以查看复制健康报告(默认)或者选择查看使用GTIDs列表,使用UUIDs列表,如果启用了日志查看日志文件内容。 每个的这些报告说明如下:

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权限的用户。

当从落后于主,–seconds-behind 选项用于检测。它允许用户设置阀值仅作为报告用。不适用于在故障转移时的候选从或选举。

从的健康状态基于下面的:IO_THREAD 和 SQL_THREADS 必需运行,必需连接到主,没有错误,没有启用GTID的落后从不超过–max-position选项指定的阀值,从正在读取正确的主日志文件,从延迟不高于–seconds-behind 选项阀值。

在每个时间间隔,在启动时如果指定了发现从选项,新的从被发现,健康的报告将被刷新。

gtid 显示执行GTIDs主的列表。GTID变量的内容,@@GLOBAL.GTID_EXECUTED, @@GLOBAL.GTID_PURGED, @@GLOBAL.GTID_OWNED。因此,用于可以反复按G键进行屏幕切换,将循环显示这四个屏幕。

UUID 显示所有服务器的全局唯一标识符(UUID)。

Log 该选项只有指定–log选项可见。显示日志文件的内容。

用户界面被设计成匹配它所在运行的终端窗口大小。提供刷新选项,允许用户调整其终端窗口或刷新时间。然而,界面会在每个间隔自动调整终端窗口大小。该界面显示程序名称,主服务器状态包括二进制日志文件,位置,过滤器,下一个间隔事件的日期时间。也提供向上或向下滚动查看。当时长清单时,滚动选项会启用。用户可以向上箭头键和向下箭头键滚动列表。

使用–verbose选项来查看故障转移期间的健康报告和附加信息。

该工具支持两种操作模式。默认模式是运行在控制台,另一种模式是以守护进程方式运行。以守护进程运行,该工具不具有交互性。所有的事件被写入到日志文件中,可以使用–report-values 选项来控制。以守护进程运行需要指定–daemon选项。–daemon选项值有:

  • start 启动守护进程。需要–log选项。
  • stop 停止守护进程。如果有指定–pidfile选项,该值需要与start指定的一致。
  • restart 重新启动守护进程。如果有指定–pidfile选项,该值需要与start指定的一致。
  • nodetach 启动守护进程,但是不会从控制台分离进程。需要–log选项。

选项

1
©2020-2024   万云SSL证书  (www.sslssl.com.cn)  万云科技   豫ICP备2020034358号-10