Skip to content

38. 高可用架构

1. MMM架构

官网。只适用于对数据一致性要求不高的场景。

2. MHA架构

Master Hight Available。MHA-node运行在每台服务器上面。MHA-master定时探测集群中的master节点,当master出现故障时,自动将最新数据的slave提升为新的master,然后将所有其他的slave重新指向新的master。强烈建议和半同步复制一起使用降低数据丢失的风险

2.1 软件的组成

由两部分组成:

  1. Manager工具包
    1. masterha_check_ssh
    2. masterha_check_repl:检查MySQL的复制状况
    3. masterha_manager:启动MHA
    4. masterha_check_status:检测当前MHA运行状态
    5. masterha_master_monitor:监测master是否宕机
    6. masterha_master_switch:控制故障转移(自动|手动)
    7. masterha_conf_host:添加或删除配置的server信息
  2. Node工具包(无需手动操作)
    1. save_binary_logs:保存和复制master的二进制文件
    2. apply_diff_relay_logs:识别差异的中继日志事件并应用到其它slave
    3. filter_mysqlbinlog:去除不必要的ROLLBACK事件
    4. purge_relay_logs:清除中继日志(不会阻塞SQL线程)

2.2 安装与部署

角色 IP server id 作用
master 192.168.17.10 1 写入
备选master 192.168.17.11 2
slave1 192.168.17.14 3
监控master 192.168.17.14 监控集群组

2.2.1 安装MHA node

所有的MySQL服务器上都需要安装。下载地址:https://github.com/yoshinorim/mha4mysql-node/releases

1.安装node需要的perl模块(DBD::mysql):

$ wget http://xrl.us/cpanm --no-check-certificate
$ chmod +x cpanm
$ mv cpanm /usr/bin/
$ yum install -y perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker perl-CPAN.noarch
$ yum install -y gcc
$ cpanm install DBD::mysql

2.下载rpm包:

$ wget https://github.com/yoshinorim/mha4mysql-node/releases/download/v0.58/mha4mysql-node-0.58-0.el7.centos.noarch.rpm

2.2.2 安装MHA master

$ wget https://github.com/yoshinorim/mha4mysql-manager/releases/download/v0.58/mha4mysql-manager-0.58-0.el7.centos.noarch.rpm