《利用mysql工具进行故障切换第二部分:mysqlfailover》由会员分享,可在线阅读,更多相关《利用mysql工具进行故障切换第二部分:mysqlfailover(4页珍藏版)》请在金锄头文库上搜索。
1、利用MySQL工具进行故障切换第二部分:mysqlfailover在本系列的前面的文章我们看到在MySQL 5.6中,当GTID启用时如何使用mysqlrpladmin执行手动故障转移/切换。现在我们将回顾MySQL实用程序中的另一个工具mysqlfailover(1.4.3版本),它可以用于故障的自动转移。Summary l 如果MySQL 5.6的GTID复制启用的话,mysqlfailover可以执行故障自动转移。l 所有的从机都必须使用主信息资料库列表。(All slaves must use -master-info-repository=TABLE.)l 监控节点是一个单故障点:别
2、忘了监视它。(The monitoring node is a single point of failure: dont forget to monitor it! )l 错误事项检测效果很好,但是你必须使用保守的选项来确保故障转移将永远不会发生错误。(Detection of errant transactions works well, but you have to use the - pedanticoption to make sure failover will never happen if there is an errant transaction. )l 有一些局限性,比
3、如不能只失败一次或过度的CPU利用率,但这对大多数设置影响不是很大。(There are a few limitations such as the inability to only fail over once, or excessive CPU utilization, but they are probably not showstoppers for most setups. )Setup我们将使用与上次相同的设置:一个主机和两个从机,并且都使用了GTID复制。我们可以看到拓扑使用mysqlfailover的health命令: (We will use the same setup
4、as last time: one master and two slaves, all using GTID replication. We can see the topology using mysqlfailover with the health command):注意master-info-repository=TABLE需要在所有从机中进行配置,不然工具将会退出并出现以下错误信息:Failover你可以使用两个命令触发自动故障转移:l 自动:工具试图在候选指定的服务器列表找到一个候选, ,如果在列表中没有找到好的服务器,它会检查其他从机看看是否可以是一个很好的候选。这是默认的命令
5、l 推选:和自动命令一样,但如果没有在候选名单找到好的候选服务器,它不会检查其他从机并且工具将退出,显示错误。让我们开始使用工具的自动命令: 监视控制台是可见的,每间隔几秒会进行刷新(默认值:15秒)。它的输出类似于使用health命令时所得到的。接来下咱们破坏主机,看当检测到主机失效时会发生什么:(Then lets kill -9 the master to see what happens once the master is detected as down: )三次尝试后未能连接到主机后。启动故障转移“自动”模式#本地候选:13002将成为新的主机。#从机状态检查(在故障转移前)。#
6、为故障转移进行候选者准备。#如果用户不存在则复制用户。#停止备份。#执行在所有从机上执行停止命令。#转换从机到新的主机上。#断开新主机的从机身份。#开始备份。#在所有从机上执行开始命令。#检查从机错误。#故障转移完成。#发现主机备份在本地:13002故障恢复控制台将在5秒后重新启动。、看起来不错!工具接下来准备将故障转移到另一个从机如果新的主机变得不可用的话。你也可以在执行中的几点运行自定义脚本,执行前,执行后,执行失败检查,执行快速故障转移选项。(You can also run custom scripts at several points of execution with the -
7、exec-before, -exec-after, -exec-fail-check, -exec-post-failover options.)但是如果有故障转移选项和退出选项来避免摆动会更好:工具将检测主机失效,提升其中一个从机,配置复制然后退出(比如这就是MHA做的)。 (However it would be great to have a -failover-and-exit option to avoid flapping: the tool would detect master failure, promote one of the slaves, reconfigure re
8、plication and then exit (this is what MHA does for instance).)Tool registration工具启动时,它会在主机上通过在特定表中编写的几件事注册自己:(When the tool is started, it registers itself on the master by writing a few things in the specific table: )这是不错的,因为它避免了你开始的mysqlfailover几个实例去监控相同的主人。如果我们尝试,会得到以下信息:伴随着失败的命令,mysqlfailover将在主
9、机失效的情况下监控复制健康和退出,而没有实际执行故障转移。(With the fail command, mysqlfailover will monitor replication health and exit in the case of a master failure, without actually performing failover.)Running in the background在所有之前的例子,mysqlfailover是在前台运行。这对演示很好,但是在生产环境中,你可能会喜欢它在后台运行。这可以用后台进程选项(-daemon option):并且可以如下停止:Er
10、rant transactions如果我们在其中的一个从机中创建一个错误的事项,就会被检测到:然而这并不阻止故障转移的发生!你必须使用pedantic选项:Limitationsl 像mysqlrpladmin,从机的选举过程不是很复杂,不能进行调整。l mysqlfailover正在运行的服务器是一个单点故障。l 过多的CPU利用率:一旦运行,mysqlfailover将是一个核心。这是相当惊人的。Conclusion在使用gtid复制群集中进行自动故障转移的话,mysqlfailover是一个很好的工具。它是灵活的,看起来很可靠。它的主要缺点是,没有简单的方法使其本身高度有效:如果mysq
11、lfailover崩溃,您必须手动重新启动它。企业一般可在支付平台上备案多个用于税费电子支付的账号,法人卡用户可通过点击“修改可操作账号”,将这些银行账号的操作权限给予指定的操作员卡用户,并设定最大可操作金额。several group number, then with b a, =c,c is is methyl b two vertical box between of accurate size. Per-23 measurement, such as proceeds of c values are equal and equal to the design value, then
12、the vertical installation accurate. For example a, b, and c valueswhile on horizontal vertical errors for measurement, General in iron angle code bit at measurement level points grid errors, specific method is from baseline to methyl vertical box center line distance for a, to b vertical box distance for b, list can measured