这是 mysqlfailover 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
mysqlfailover - 自动复制故障转移
概要
mysql 故障转移 [选项]
商品描述
此实用程序允许用户执行复制健康监控和自动故障转移
在一个由主节点和它的从节点组成的复制拓扑上。 该实用程序被设计
以交互方式运行或持续定期刷新健康信息
间隔。 它的主要任务是监视 master 是否发生故障以及何时发生故障
发生时,执行故障转移到可用的最佳从站。 该实用程序接受从属列表
被视为候选奴隶。
此实用程序专为支持全局事务的服务器而设计
标识符(GTID)并具有 GTID_MODE=ON。 MySQL 服务器版本 5.6.9 及更高版本支持
GTID。 有关设置的更多信息,请参阅 MySQL 服务器在线参考手册
启用 GTID 的复制。
用户可以指定用于检测主站状态的时间间隔(以秒为单位)和
使用 - 间隔 选项。 在每个时间间隔,效用
将通过 ping 操作检查服务器是否处于活动状态,然后检查
连接器来检测服务器是否仍然可以访问。 可以控制ping操作
与 --平 选项(见下文)。
如果发现 master 离线或无法访问,该实用程序将执行以下操作之一
根据价值采取以下行动 --故障转移模式 选项。
汽车 首先执行自动故障转移到候选列表,如果没有从属
可行,继续从奴隶列表中找到可行的候选人。 如果没有奴隶
被发现是一个可行的候选者,该实用程序将生成并出错并退出。
一旦找到候选对象,该实用程序将故障转移到最佳从属设备。 这
命令将测试为先决条件列出的每个候选从站。 一旦成为候选人
奴隶被选举出来,它成为其他每个奴隶的奴隶,从而收集任何
在其他奴隶上执行的交易,但不是候选人。 这样,候选人
成为最新的奴隶。
选举 此模式与自动相同,除非在列表中没有指定候选
候选从站是可行的,它不检查剩余的从站并生成和
错误并退出。
失败 此模式会产生错误,并且在主服务器关闭时不会进行故障转移。 这个
模式用于在不采取故障转移操作的情况下提供定期健康监控。
对于允许指定多个服务器的所有选项,这些选项需要一个
以下形式的逗号分隔的连接参数列表(其中密码,
端口和套接字是可选的):
<*user*>[:<*passwd*>]@<*host*>[:<*port*>][:<*socket*>] 或
<*登录路径*>[:<*端口*>][:<*socket*>]
该实用程序允许用户发现连接到主站的从站。 为了使用
发现从属功能,所有从属必须使用 --report-host 和 --report-port 启动
变量以指定从站的正确主机名和 IP 端口。 如果缺少这些
或报告错误信息,可能无法正确报告从属健康或
从站可能根本没有列出。 发现从属功能忽略它的任何从属
无法连接到。
发现从属功能在每个时间间隔自动运行。
该实用程序允许用户指定要在执行之前和之后执行的外部脚本。
切换和故障转移命令。 用户可以指定这些 --exec-之前 和
--执行后 选项。 脚本的返回码用于确定成功,因此每个
脚本必须报告 0(成功)才能被视为成功。 如果脚本返回一个值
除 0 外,结果代码显示在错误消息中。
该实用程序还允许用户指定一个脚本,用于检测已关闭的
master 或应用程序级事件来触发故障转移。 这可以使用
--执行失败检查 选项。 脚本的返回码用于调用故障转移。 一种
返回码 0 表示不应发生故障转移。 0 以外的返回码
表示应该发生故障转移。 这在每个间隔开始时检查,如果
提供脚本。 在这种情况下不使用超时选项,脚本运行一次
在每个间隔的开始。
该实用程序允许用户记录在命令期间执行的所有操作。 这 - 日志
选项需要文件的有效路径和文件名以用于日志记录操作。 这
仅当指定此选项时,日志才处于活动状态。 选项 --日志年龄 指定年龄
以保留日志条目的天数计。 默认值为七 (7) 天。 较旧的条目是
自动从日志文件中删除(但仅当 - 日志 选项已指定)。
日志文件的格式包括事件的日期和时间、事件的级别
(信息 - INFO,警告 - WARN,错误 - 错误,严重故障 - CRITICAL),以及
实用程序报告的消息。
该界面为用户提供了许多用于显示附加信息的选项
信息。 用户可以选择查看复制健康报告(默认),或者选择
查看正在使用的 GTID 列表、正在使用的 UUID 以及是否启用了日志记录的内容
的日志文件。 这些报告中的每一个都在下面描述。
健康 显示拓扑的复制健康状况。 此报告是默认视图
界面。 默认情况下,这包括主机名、端口、角色(MASTER 或 SLAVE)
服务器,服务器状态(UP = 已连接,WARN = 未连接但可以 ping,
DOWN = 未连接且无法 ping)、GTID_MODE 和健康状态。
主健康状态基于以下内容; 如果 GTID_MODE=ON,服务器必须有
启用二进制日志,并且必须存在具有 REPLICATE SLAVE 权限的用户。
从属健康状态基于以下内容; IO_THREAD 和 SQL_THREADS 必须是
运行,必须连接到master,没有错误,slave延迟为
非gtid启用的场景不超过提供的阈值 --最大位置
并且从站正在读取正确的主日志文件,并且从站延迟不超过
--秒落后 阈值选项。
在每个时间间隔,如果在启动和新从站时指定了发现从站选项
被发现,健康报告被刷新。
GTID:显示master的已执行GTID列表,GTID变量的内容;
@@GLOBAL.GTID_EXECUTED、@@GLOBAL.GTID_PURGED 和@@GLOBAL.GTID_OWNED。 因此,用户可以
反复按“G”键可在四个屏幕之间切换。 显示将循环
通过所有四个屏幕在第四个屏幕后重新启动。
UUID:显示所有服务器的通用唯一标识符 (UUID)。
历史记录:此选项仅在以下情况下可见 - 日志 选项被指定。 显示内容
日志文件。 这有助于稍后在发生故障转移时查看
当时记录的动作或消息。
用户界面旨在匹配它所在的终端窗口的大小
跑。 提供刷新选项以允许用户调整其终端窗口的大小或
随时刷新显示。 但是,界面会自动调整为
每个间隔的终端窗口。
界面将显示实用程序的名称,master 的状态,包括二进制
日志文件、位置和过滤器以及下一个间隔事件的日期和时间。
该界面还允许用户向上或向下滚动列表的长度超过
终端窗口允许的内容。 当出现一个长列表时,滚动选项变为
启用。 用户可以使用向上箭头键向上滚动列表,使用向下箭头键向下滚动列表
箭头键。
使用 --详细 查看健康报告中的附加信息和附加信息的选项
故障转移期间的消息。
该实用程序支持两种操作模式。 作为控制台运行的默认模式有效
如上所述。 允许您将实用程序作为守护程序运行的附加模式是
为 POSIX 平台提供。
当作为守护程序运行时,该实用程序没有交互性。 然而,所有的事件都是
写入日志文件。 您可以使用
--报告值 选项。
要将实用程序作为守护程序运行,请使用 --守护进程 选项。 有三个命令可以
用于 --守护进程 选项。 这些包括:
· 开始
启动守护进程。 这 - 日志 选项是必需的。
· 停止
停止守护进程。 如果您使用了该选项 --pid文件, 值必须相同时
启动守护进程。
· 重新开始
重新启动守护进程。 如果您使用了该选项 --pid文件, 值必须相同时
启动守护进程。
· 不分离
启动守护进程,但不会从控制台分离进程。 这 - 日志
选项是必需的。
该实用程序支持两种操作模式。 作为控制台运行的默认模式有效
如上所述。 允许您将实用程序作为守护程序运行的附加模式是
为 POSIX 平台提供。
当作为守护程序运行时,该实用程序没有交互性。 然而,所有的事件都是
写入日志文件。 您可以使用
--报告值 选项。
要将实用程序作为守护程序运行,请使用 --守护进程 选项。 有三个命令可以
用于 --守护进程 选项。 这些包括:
· 开始
启动守护进程。 这 - 日志 选项是必需的。
· 停止
停止守护进程。 选项 --pid文件 启动守护进程时必须相同。
· 重新开始
重新启动守护进程。 选项 --pid文件 启动守护进程时必须相同。
· 不分离
启动守护进程,但不会从控制台分离进程。 这 - 日志
选项是必需的。
配置
mysql 故障转移 接受以下命令行选项:
· - 帮助
显示帮助消息并退出。
· --候选人=
用于故障转移的候选从服务器的连接信息格式为:
<用户>[:passwd文件>]@主持人>[:端口>][:插座>] 或登录路径>[:端口>][:插座>]。
仅对故障转移命令有效。 在逗号分隔的列表中列出多个从站。
· --daemon=
作为守护进程运行。 有可能 开始 (启动守护进程), 停止 (停止守护进程), 重新开始 (停止
然后启动守护进程)或 不分离 (启动但不分离进程)。 这个选项
仅适用于 POSIX 系统。
· --discover-slaves-login=
启动时,查询master所有注册的slave,使用用户名和密码
指定连接。 在表单中提供用户和密码用户>[:passwd文件>] 或
<登录路径>. 例如,--discover=joe:secret 将使用 'joe' 作为用户并且
'secret' 作为每个发现的奴隶的密码。
· --exec-after=
故障转移或切换后要执行的脚本名称。 脚本名称可能包括
路径。
· --exec-before=
故障转移或切换前要执行的脚本名称。 脚本名称可能包括
路径。
· --exec-fail-check=
要在每个时间间隔执行以调用故障转移的脚本名称。
· --exec-post-failover=
故障转移完成且实用程序刷新后要执行的脚本名称
健康报告。
· --failover-mode= , -F
当主节点失败时采取的措施。 'auto' = 自动失败到最好的奴隶,
'elect' = 未能进入候选人名单,或者如果没有候选人符合标准失败,'fail' = 接受
主失败时不采取任何行动并停止。 默认 = '自动'。
· - 力量
为控制台的多个实例覆盖 master 上的注册检查
监控同一个主。 见注释。
· --间隔= , -一世
轮询主节点故障和报告运行状况的时间间隔(以秒为单位)。 默认 =
15 秒。 最小值为 5 秒。
· --log=
指定用于记录消息的日志文件
· --log-age=
以天为单位指定日志条目的最长期限。 早于此的条目将被清除
启动。 默认值 = 7 天。
· --master=
主服务器的连接信息格式为:
<用户>[:passwd文件>]@主持人>[:端口>][:插座>] 或登录路径>[:端口>][:插座>]。
· --max-position=
用于检测从设备延迟。 master 的日志位置的最大差异
和从站报告的主站读取位置。 大于这个值意味着
奴隶落后于主人太远了。 默认值 = 0。
·--迂腐,-p
用于在发现一些不一致时停止故障转移(例如错误的事务)
从服务器或 SQL 线程错误)在服务器检查期间。 默认情况下,该实用程序只会
如果在故障转移期间检查从属状态时发现问题,则发出警告和
除非指定此选项,否则将继续执行。
· --pidfile=
用于将 mysqlfailover 作为守护进程运行的 Pidfile。 该文件包含 PID(进程
标识符),唯一标识一个进程。 需要识别和控制
mysqlfailover fork 的进程。
· --ping=
检测宕机服务器的 ping 尝试次数。 注意:在某些平台上这是
与等待 ping 返回的秒数相同。 默认值为 3 秒。
· --report-values=
报告作为守护进程运行的 mysqlfailover 中使用的值。 它可以是健康、gtid 或
用户名。 可以使用多个值以逗号分隔。
· 健康
显示拓扑的复制健康状况。
· GTID
显示已执行的 GTID 的 master 列表,GTID 变量的内容;
@@GLOBAL.GTID_EXECUTED、@@GLOBAL.GTID_PURGED 和@@GLOBAL.GTID_OWNED。
· 用户名
显示所有服务器的通用唯一标识符 (UUID)。
默认值 = 健康。
· --rpl-user=:
复制用户要求的用户名和密码,格式为:
<用户>[:密码>] 或登录路径>. 例如 rpl:passwd
默认值 = 无。
· --script-threshold=
如果结果大于,则外部脚本触发中止操作的值
或等于阈值。
默认值 = None(无阈值检查)。
· --seconds-behind=
用于检测从设备延迟。 master 允许的最大秒数
在奴隶之前被认为是在主人之后。 默认值 = 0。
· --奴隶=
从服务器的连接信息格式为:
<用户>[:passwd文件>]@主持人>[:端口>][:插座>] 或登录路径>[:端口>][:插座>]。 列表
逗号分隔列表中的多个从站。 该列表将按字面进行评估,由此
每个服务器都被视为列出的主服务器的从属服务器,无论它们是否是从属服务器
主人的。
· --timeout=
等待每个复制命令完成的最大超时时间(以秒为单位)。 为了
例如,从等待赶上主的超时。
默认值 = 3。
· --详细,-v
指定要显示的信息量。 多次使用此选项以增加
信息量。 例如, -v = 冗长, -vv = 更详细, -vvv =
调试。
· - 版本
显示版本信息并退出。
附注
登录用户必须有适当的权限才能执行 SHOW 奴隶 状态, SHOW
主 状态及 SHOW 变数 在适当的服务器上,并授予
REPLICATE SLAVE 特权。 故障转移实用程序需要不同的权限才能
主从成功运行。 特别是,连接到从站的用户和
候选人需要 超, 授 OPTION, 复制 奴隶及 RELOAD 特权。
另外,连接到master的用户需要 下降, CREATE, 插入 和 选择
注册故障转移控制台的权限。 该实用程序检查权限
启动时的主、从和候选。
启动时,控制台将尝试向主服务器注册自己。 如果另一个
控制台已注册,且故障转移模式为自动或选择,控制台将
阻止运行故障转移。 当控制台退出时,它会从
掌握。 如果这个过程被破坏,用户可以通过使用覆盖注册检查
这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 - 力量 选项。
不建议混合使用 IP 和主机名。 特定于复制的实用程序将
尝试比较主机名和 IP 地址作为检查从属连接的别名
给主人。 但是,如果您的安装不支持反向名称查找,则
比较可能会失败。 如果无法进行反向名称查找,复制
实用程序可能会报告一个误报,即从站(未)连接到主站。
例如,如果您在从站和更高版本上使用 MASTER_HOST=ubuntu.net 设置复制
使用 mysqlrplcheck 连接到从站,并将主站指定为
--master=192.168.0.6 使用ubuntu.net的有效IP地址,你必须有能力
进行反向名称查找以比较 IP (192.168.0.6) 和主机名 (ubuntu.net)
以确定它们是否是同一台机器。
同样,为了避免将本地 IP '127.0.0.1' 与 'localhost' 混合使用的问题,所有
地址“127.0.0.1”将被实用程序在内部转换为“localhost”。
尽管如此,最好在连接或连接时使用 master 的实际主机名
设置复制。
该实用程序将检查从属设备是否正在使用该选项
--master-info-repository=表。 如果不是,该实用程序将因错误而停止。
MySQL 客户端工具的路径应包含在 PATH 环境变量中
为了使用带有登录路径的身份验证机制。 这将允许实用程序
使用 my_print_defaults 工具,该工具需要从
登录配置文件 (.mylogin.cnf)。
控制台在mysql数据库中创建了一个特殊的表,用于跟踪
哪个实例正在与 master 通信。 如果您使用 - 力量 选项,
控制台将删除此表中的行。 该表由以下内容构成:
如果不存在则创建表 mysql.failover_console(主机 坦克(30), 端口 坦克(10))
当控制台启动时,会插入一行,其中包含主机的主机名和端口。
启动时,如果一行匹配这些值,控制台将不会启动。 如果您使用
- 力量 选项,该行被删除。
当使用 --守护进程 选项与 不分离 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 --pid文件 选项可以
被省略,如果使用将被忽略。
当使用 --守护进程 选项与 不分离 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 --pid文件 选项可以
被省略,如果使用将被忽略。
示例
要启动该实用程序,您必须至少指定 - 掌握 选项和
--发现-奴隶-登录 选项还是 --奴隶 选项。 选项:选项可用于
与 --奴隶 用于指定已知从站(或执行此操作的从站)列表的选项
不报告他们的主机和 ip)并发现任何其他连接到主站的从站。
用户界面示例和一些报告视图如下所示
例子。
备注
“GTID Executed Set”将显示 SHOW MASTER STATUS 中列出的第一个 GTID
看法。 如果列出了多个 GTID,实用程序应显示 [...] 以指示
还有其他 GTID 可供查看。 您可以查看 GTID 的完整列表
GTID 显示屏幕。
默认界面将显示如下所示的复制健康报告。 在
此示例启用了日志文件。 示例启动命令如下所示:
$ mysqlfailover --master=root@localhost:3331 --discover-slaves-login=root --log=log.txt
MySQL 复制监视器和故障转移实用程序
故障转移模式 = 自动下一个间隔 = Mon Mar 19 15:56:03 2012
主信息
------------------
二进制日志文件位置 Binlog_Do_DB Binlog_Ignore_DB
mysql-bin.000001 571
GTID 执行集
2A67DE00-2DA1-11E2-A711-00764F2BE90F:1-7 [...]
复制健康状态
+------------+-------+---------+--------+--------- ---+----------+
| 主机| 港口| 角色| 状态 | gtid_mode | 健康 |
+------------+-------+---------+--------+--------- ---+----------+
| 本地主机 | 3331 | 硕士 | 向上 | 开 | 好的 |
| 本地主机 | 3332 | 奴隶 | 向上 | 开 | 好的 |
| 本地主机 | 3333 | 奴隶 | 向上 | 开 | 好的 |
| 本地主机 | 3334 | 奴隶 | 向上 | 开 | 好的 |
+------------+-------+---------+--------+--------- ---+----------+
Q-quit R-refresh H-health G-GTID 列出 U-UUIDs L-log 条目
按“q”键将退出该实用程序。 按“r”键将刷新当前
展示。 按“h”键将返回到复制健康报告。
如果用户按下 'g' 键,gtid 报告显示如下。 首先
显示的页面是 master 执行的 GTID 集:
MySQL 复制监视器和故障转移实用程序
故障转移模式 = 自动下一个间隔 = Mon Mar 19 15:59:33 2012
主信息
------------------
二进制日志文件位置 Binlog_Do_DB Binlog_Ignore_DB
mysql-bin.000001 571
GTID 执行集
2A67DE00-2DA1-11E2-A711-00764F2BE90F:1-7 [...]
主 GTID 执行集
+--------------------------------------------+
| GTID |
+--------------------------------------------+
| 2A67DE00-2DA1-11E2-A711-00764F2BE90F:1-7 |
| 5503D37E-2DB2-11E2-A781-8077D4C14B33:1-3 |
+--------------------------------------------+
Q-quit R-refresh H-health G-GTID 列出 U-UUIDs L-log 条目 Up|Down-scroll
如果用户继续按'g'键,显示将循环显示三个gtid
列表。
如果列表长于屏幕允许的长度,如上例所示,向上滚动
还显示向下帮助。 在这种情况下,如果用户按下向下箭头,列表
将向下滚动。
如果用户按下“u”键,则会显示拓扑中使用的 UUID 列表。:
MySQL 复制监视器和故障转移实用程序
故障转移模式 = 自动下一个间隔 = Mon Mar 19 16:02:34 2012
主信息
------------------
二进制日志文件位置 Binlog_Do_DB Binlog_Ignore_DB
mysql-bin.000001 571
GTID 执行集
2A67DE00-2DA1-11E2-A711-00764F2BE90F:1-7 [...]
UUID
+------------+-------+---------+----- ---------------------+
| 主机| 港口| 角色| 用户名 |
+------------+-------+---------+----- ---------------------+
| 本地主机 | 3331 | 硕士 | 55c65a00-71fd-11e1-9f80-ac64ef85c961 |
| 本地主机 | 3332 | 奴隶 | 5dd30888-71fd-11e1-9f80-dc242138b7ec |
| 本地主机 | 3333 | 奴隶 | 65ccbb38-71fd-11e1-9f80-bda8146bdb0a |
| 本地主机 | 3334 | 奴隶 | 6dd6abf4-71fd-11e1-9f80-d406a0117519 |
+------------+-------+---------+----- ---------------------+
Q-quit R-refresh H-health G-GTID 列出 U-UUIDs L-log 条目
如果,一旦检测到主服务器关闭并且故障转移模式为自动或选择,并且有
可行的候选从站,故障转移功能将自动启用,用户将
看到故障转移消息出现。 当故障转移完成时,界面返回到
5 秒后监控复制运行状况。 下面显示了故障转移的示例
发生。:
故障转移开始...
# Candidate slave localhost:3332 将成为新的master。
# 为故障转移准备候选人。
# 如果复制用户不存在,则创建复制用户。
# 停止奴隶。
# 对所有从站执行 STOP。
# 将奴隶切换到新的主人。
# 启动奴隶。
# 在所有从机上执行 START。
# 检查从站是否有错误。
# 故障转移完成。
# 在 localhost:3332 上发现 master 的 slaves
故障转移控制台将在 5 秒后重新启动。
故障转移事件后,新拓扑将显示在复制健康报告中。:
MySQL 复制监视器和故障转移实用程序
故障转移模式 = 自动下一个间隔 = Mon Mar 19 16:05:12 2012
主信息
------------------
二进制日志文件位置 Binlog_Do_DB Binlog_Ignore_DB
mysql-bin.000001 1117
GTID 执行集
2A67DE00-2DA1-11E2-A711-00764F2BE90F:1-7 [...]
UUID
+------------+-------+---------+--------+--------- ---+----------+
| 主机| 港口| 角色| 状态 | gtid_mode | 健康 |
+------------+-------+---------+--------+--------- ---+----------+
| 本地主机 | 3332 | 硕士 | 向上 | 开 | 好的 |
| 本地主机 | 3333 | 奴隶 | 向上 | 开 | 好的 |
| 本地主机 | 3334 | 奴隶 | 向上 | 开 | 好的 |
+------------+-------+---------+--------+--------- ---+----------+
Q-quit R-refresh H-health G-GTID 列出 U-UUIDs L-log 条目
如果用户按下“l”键并且 - 日志 选项被指定,接口将
显示日志文件中的条目。 注意:示例因空间限制而被截断。:
MySQL 复制监视器和故障转移实用程序
故障转移模式 = 自动下一个间隔 = Mon Mar 19 16:06:13 2012
主信息
------------------
二进制日志文件位置 Binlog_Do_DB Binlog_Ignore_DB
mysql-bin.000001 1117
GTID 执行集
2A67DE00-2DA1-11E2-A711-00764F2BE90F:1-7 [...]
日志文件
+---------------+-------------- ------------------ ... --+
| 日期 | 条目... |
+---------------+-------------- ------------------ ... --+
| 2012-03-19 15:55:33 PM | 信息故障转移控制台已启动。 ... |
| 2012-03-19 15:55:33 PM | 信息故障转移模式 = 自动。 ... |
| 2012-03-19 15:55:33 PM | 信息获取主人的健康:localhos ... |
| 2012-03-19 15:55:33 PM | 信息主状态:binlog:mysql-bin.00 ... |
+---------------+-------------- ------------------ ... --+
Q-quit R-refresh H-health G-GTID 列出 U-UUIDs L-log 条目 Up|Down-scroll\
版权
使用onworks.net服务在线使用mysqlfailover