MySQL高可用解决方案:MHA

MySQL高可用解决方案:MHA


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。

Perl编译安装

最新版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节点不用额外配置,所以不做重复演示了。

[root@node4 mha4mysql-manager-0.56]# perl Makefile.PL *** Module::AutoInstall version 1.03 *** Checking for Perl dependencies... [Core Features] - DBI ...loaded. (1.627) - DBD::mysql ...loaded. (4.023) - Time::HiRes ...loaded. (1.9725) - Config::Tiny ...loaded. (2.14) - Log::Dispatch ...loaded. (2.41) - Parallel::ForkManager ...loaded. (1.05) - MHA::NodeConst ...loaded. (0.56) *** Module::AutoInstall configuration finished. Writing Makefile for mha4mysql::manager

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 数据库节点的配置

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/34f56d8f140797ef34b5054ae0d4115d.html