接下来我们正式开始学习MHA数据库高可用架构的搭建,先来学习一下在三个数据库所在机器上安装MHA node节点的步骤,首先必须要先安装Perl语言环境

    所以先可以用yum装一下Perl语言环境:

    1. yum install perl-DBD-MySQL

    然后从下属地址下载MHA node代码:https://github.com/yoshinorim/mha4mysql-node,接着就可以把node的压缩包用WinSCP之类的工具上传到机器上去,接着解压缩node包就可以了

    1. tar -zxvf mha4mysql-node-0.57.tar.gz

    然后可以安装perl-cpan软件包:

    1. cd mha4mysql-node-0.57
    2. yum -y install perl-CPAN*
    3. perl Makefile.PL
    4. make && make install

    到此为止,暂时node的安装就可以了,记得3个部署MySQL的机器都要安装node,接着就是安装MHA的manager节点,先安装需要的一些依赖包:

    1. yum install -y perl-DBD-MySQL*
    2. rpm -ivh perl-Params-Validate-0.92-3.el6.x86_64.rpm
    3. rpm -ivh perl-Config-Tiny-2.12-1.el6.rfx.noarch.rpm
    4. rpm -ivh perl-Log-Dispatch-2.26-1.el6.rfx.noarch.rpm
    5. rpm -ivh perl-Parallel-ForkManager-0.7.5-2.2.el6.rfx.noarch.rpm

    接着就可以安装manager节点了,先在下面的地址下载manager的压缩包:https://github.com/yoshi norim/mha4mysql-manager,然后上传到机器上去,按照下述步骤安装就可以了:

    1. tar -zxvf mha4mysql-manager-0.57.tar.gz
    2. perl Makefile.PL
    3. make && make install

    接着为MHA manager创建几个目录:/usr/local/mha,/etc/mha,然后进入到/etc/mha目录下,vi
    mha.conf一下,编辑他的配合文件

    1. [server default]
    2. user=zhss
    3. password=12345678
    4. manager_workdir=/usr/local/mha
    5. manager_log=/usr/local/mha/manager.log
    6. remote_workdir=/usr/local/mha
    7. ssh_user=root
    8. repl_user=repl
    9. repl_password=repl
    10. ping_interval=1
    11. master_ip_failover_script=/usr/local/scripts/master_ip_failover
    12. master_ip_online_change_script=/usr/local/scripts/master_ip_online_change
    13. [server1]
    14. hostname=xx.xx.xx.xx
    15. ssh_port=22
    16. master_binlog_dir=/data/mysqll
    17. condidate_master=1
    18. port=3306
    19. [server1]
    20. hostname=xx.xx.xx.xx
    21. ssh_port=22
    22. master_binlog_dir=/data/mysqll
    23. condidate_master=1
    24. port=3306
    25. [server1] hostname=xx.xx.xx.xx
    26. ssh_port=22
    27. master_binlog_dir=/data/mysqll
    28. condidate_master=1
    29. port=3306

    上面那份配置文件就可以指导MHA manager节点去跟其他节点的node通信了,大家可以观察到,上面说白了都是配置一些工作目录,日志目录,用户密码之类的东西,还有一些脚本,另外比较关键的是, 你有几个node节点,就配置一个server,把每个server的ip地址配置进去就可以了

    接着创建存放脚本的目录:/usr/local/scripts,在里面需要放一个master_ip_failover脚本,vi master_ip_failover就可以了,输入下面的内容:
    126、数据库高可用:基于主从复制实现故障转移(2) - 图1

    接着在编辑一下online_change这个脚本,如下:
    126、数据库高可用:基于主从复制实现故障转移(2) - 图2
    126、数据库高可用:基于主从复制实现故障转移(2) - 图3
    126、数据库高可用:基于主从复制实现故障转移(2) - 图4
    126、数据库高可用:基于主从复制实现故障转移(2) - 图5
    126、数据库高可用:基于主从复制实现故障转移(2) - 图6
    126、数据库高可用:基于主从复制实现故障转移(2) - 图7
    126、数据库高可用:基于主从复制实现故障转移(2) - 图8
    126、数据库高可用:基于主从复制实现故障转移(2) - 图9

    126、数据库高可用:基于主从复制实现故障转移(2) - 图10
    126、数据库高可用:基于主从复制实现故障转移(2) - 图11
    126、数据库高可用:基于主从复制实现故障转移(2) - 图12
    126、数据库高可用:基于主从复制实现故障转移(2) - 图13
    126、数据库高可用:基于主从复制实现故障转移(2) - 图14

    126、数据库高可用:基于主从复制实现故障转移(2) - 图15
    126、数据库高可用:基于主从复制实现故障转移(2) - 图16

    完事儿过后,就可以给两个脚本增加权限:
    chmod +x master_ip_failover
    chmod +x master_ip_online_change

    接着安装需要的软件包:yum -y install perl-Time-HiRes
    执行SSH检测命令:/usr/local/bin/masterha_check_ssh —conf=/etc/mha/mha.conf 如果检测结果全部显示为OK,那么就代表你安装完毕了

    然后检测主从架构:/usr/local/bin/masterha_check_repl —conf=/etc/mha/mha.conf 如果检测结果全部正常,那么就代表没问题了

    好,这次我们就学习到这里,下次继续学习