MHA.gif
要点以及基础知识MHA的组件中主要有两个,一个是Manager节点组件。类似于一个监督者。
Node节点组件则是安装于数据库节点,其中一个作为Master。
MHA在主节点发生故障时需要进行主节点自动切换,所以必不可少地需要管理员权限。所以多个节点之间需要基于ssh秘钥认证。
MHA的主要配置在于manager。
主机名主机地址角色node1 192.168.2.201 Master节点,安装node组件
node2 192.168.2.202 Slave节点,安装node组件
node3 192.168.2.203 Slave节点,安装node组件
node4 192.168.2.204 安装manager组件
本文使用CentOS7.1,数据库:MariaDB-5.5.50
关于半同步复制的详细配置,可以参考我的上一篇文章。由于篇幅问题,这里主要讲如何安装配置和使用MHA组件。
因为数据库版本是MariaDB-5.5.50,所以选择编译在codegoole上面的mha4mysql-0.56
注意:本文关闭了selinux,以及iptables。
最新版MHA下载地址:
mha4mysql-manager
mha4mysql-node
题外话
本来代码是在codegoogle上面进行托管的,甚至连一些介绍的主页也是在codegoogle上面的。
但是由于github的出现,很多软件都转移到github上边了。codegoole上面的rpm包很多都已经失效。
因为来历不明的rpm不敢安装在实际环境中,所以选择使用perl编译安装。
(1)在每一个节点上面进行编译环境的安装
yum -y install perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-Config-IniFiles ncftp perl-Params-Validate perl-CPAN perl-Test-Mock-LWP.noarch perl-LWP-Authen-Negotiate.noarch perl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker(2)在node4中安装manager组件
a.使用make Makefile.PL检查编译环境,功能类似于./configure
其实node1~node3这三个配置了半同步复制的数据库节点安装的是node组件,但是也是执行这两步。
一般都不会出错。而且node节点不用额外配置,所以不做重复演示了。
b.使用make&&make install安装
[root@node4 mha4mysql-manager-0.56]# make&&make install Skip blib/lib/MHA/ManagerUtil.pm (unchanged) Skip blib/lib/MHA/Config.pm (unchanged) Skip blib/lib/MHA/HealthCheck.pm (unchanged) Skip blib/lib/MHA/ManagerConst.pm (unchanged) Skip blib/lib/MHA/ServerManager.pm (unchanged) Skip blib/lib/MHA/ManagerAdmin.pm (unchanged) Skip blib/lib/MHA/FileStatus.pm (unchanged) Skip blib/lib/MHA/ManagerAdminWrapper.pm (unchanged) Skip blib/lib/MHA/MasterFailover.pm (unchanged) Skip blib/lib/MHA/MasterRotate.pm (unchanged) Skip blib/lib/MHA/MasterMonitor.pm (unchanged) Skip blib/lib/MHA/SSHCheck.pm (unchanged) Skip blib/lib/MHA/Server.pm (unchanged) Skip blib/lib/MHA/DBHelper.pm (unchanged) cp bin/masterha_stop blib/script/masterha_stop /usr/bin/perl "-Iinc" -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/masterha_stop cp bin/masterha_conf_host blib/script/masterha_conf_host /usr/bin/perl "-Iinc" -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/masterha_conf_host cp bin/masterha_check_repl blib/script/masterha_check_repl /usr/bin/perl "-Iinc" -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/masterha_check_repl cp bin/masterha_check_status blib/script/masterha_check_status /usr/bin/perl "-Iinc" -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/masterha_check_status cp bin/masterha_master_monitor blib/script/masterha_master_monitor /usr/bin/perl "-Iinc" -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/masterha_master_monitor cp bin/masterha_check_ssh blib/script/masterha_check_ssh /usr/bin/perl "-Iinc" -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/masterha_check_ssh cp bin/masterha_master_switch blib/script/masterha_master_switch /usr/bin/perl "-Iinc" -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/masterha_master_switch cp bin/masterha_secondary_check blib/script/masterha_secondary_check /usr/bin/perl "-Iinc" -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/masterha_secondary_check cp bin/masterha_manager blib/script/masterha_manager /usr/bin/perl "-Iinc" -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/masterha_manager Manifying blib/man1/masterha_stop.1 Manifying blib/man1/masterha_conf_host.1 Manifying blib/man1/masterha_check_repl.1 Manifying blib/man1/masterha_check_status.1 Manifying blib/man1/masterha_master_monitor.1 Manifying blib/man1/masterha_check_ssh.1 Manifying blib/man1/masterha_master_switch.1 Manifying blib/man1/masterha_secondary_check.1 Manifying blib/man1/masterha_manager.1 Appending installation info to /usr/lib64/perl5/perllocal.pod 数据库节点的配置