zoukankan      html  css  js  c++  java
  • MySQL高可用之MHA配置

    本文简单介绍了MySQL的高可用实现方式之一的MHA

    MHA:Master High Availability,对主节点进行监控,可实现自动故障转移至其它从节点;通过提升某一从节点为新的主节点,基于主从复制实现,还需要客户端配合实现,目前MHA主要支持一主多从的架构,要搭建MHA,要求一个复制集群中必须最少有三台数据库服务器,一主二从,即一台充当master,一台充当备用master,另外一台充当从库。官网:https://code.google.com/archive/p/mysql-master-ha/

    MHA工作原理:

      1、 从宕机崩溃的master保存二进制日志事件(binlog events)

      2 、识别含有最新更新的slave

           3、 应用差异的中继日志(relay log)到其他的slave

           4 、应用从master保存的二进制日志事件(binlog events)

           5、 提升一个slave为新的master

           6 、使其他的slave连接新的master进行复制

    MHA配置方法

    1、准备安装环境

      -  MHA服务器1台,CentOS7

      -  主库1台,CentOS7,192.168.1.100

      -  从库1台,CentOS7,192.168.1.101

      -  从库1台,CentOS7,192.168.1.102

      从官网下载安装包

        1、mha4mysql-manager-0.55-0.el6.noarch.rpm

        2、mha4mysql-node-0.54-0.el6.noarch.rpm

    2、安装软件包

      MHA服务器需要安装mha的node包和manager包

        # yum -y install mha4mysql-node-0.54-0.el6.noarch.rpm

        # yum -y install mha4mysql-manager-0.55-0.el6.noarch.rpm

      主库,及所有从库服务器安装mha的node包,并且安装数据库,这里采用CentOS7默认的mairadb数据库

        # yum-y install mha4mysql-node-0.54-0.el6.noarch.rpm

        # yum -y install mariadb-server

        

    3、服务器之间ssh免密登录

      MHA,主库,从库四台服务器之间实现两两免密登录。参考链接

    4、配置主从复制

    主库192.168.1.100
    1、修改配置文件 #vim /etc/my.cnf [mysqld] log-bin server_id=100 skip_name_resolve=1 2、启动mariadb # systemctl start mariadb 3、登录数据库添加主从复制的账户 mysql >grant replication slave on *.* to repluser@'192.168.1.%' identified by ‘123456'; ================================================== 从库192.168.1.101
    1、修改配置文件 #vim /etc/my.cnf server_id=101 log-bin read_only relay_log_purge=0 skip_name_resolve=1 2、启动mariadb # systemctl start mariadb 3、开启主从模式:注意二进制日志的位置 mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.100', MASTER_USER='repluser', MASTER_PASSWORD='123456', MASTER_PORT=3306, MASTER_LOG_FILE='mariadb-bin.000001', MASTER_LOG_POS=245; mysql> start slave; ================================================== 从库192.168.1.102
    1、修改配置文件 #vim /etc/my.cnf server_id=102 log-bin read_only relay_log_purge=0 skip_name_resolve=1 2、启动mariadb # systemctl start mariadb 3、开启主从模式:注意二进制日志的位置 mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.100', MASTER_USER='repluser', MASTER_PASSWORD='123456', MASTER_PORT=3306, MASTER_LOG_FILE='mariadb-bin.000001', MASTER_LOG_POS=245; mysql> start slave;

     5、配置MHA

    在主库192.168.1.100上创建mha管理用户
    mysql>grant all on *.* to mhauser@'192.168.1.%’identified by '111111';
    ==========================================================================

    在MHA服务器上
    1、修改配置文件 # vim /etc/mha/mha.cnf [server default] user=mhauser password=111111 manager_workdir=/data/mastermha/app1/ manager_log=/data/mastermha/app1/manager.log remote_workdir=/data/mastermha/app1/ ssh_user=root repl_user=repluser repl_password=123456 ping_interval=1 [server1] hostname=192.168.1.200 candidate_master=1 [server2] hostname=192.168.1.201 candidate_master=1 [server3] hostname=192.168.1.202

    2、MHA检测验证
    # masterha_check_ssh --conf=/etc/mha/mha.cnf
    # masterha_check_repl --conf=/etc/mha/mha.cnf

    3、启动MHA服务
    # masterha_manager --conf=/etc/mha/mha.cnf

    注意:MHA服务一旦启动后会占据前台,只有当主库出现故障的时候,MHA生效,自动提升一台从库为主库。此时MHA程序停止运行,退出前台。

  • 相关阅读:
    八月份总结+项目总结
    缓存图片技术
    7月份总结
    【转】JavaScript 事件顺序:冒泡和捕获
    【转】UTF16和UTF8什么区别?
    【转】javascript和html中unicode编码和字符转义的详解
    【笔记】javascript权威指南-第六章-对象
    Delphi 中的MD5实现方法《转》
    DELPHI 代码块集合
    Delphi Access 表中查询日期时间提示出错的问题《转》
  • 原文地址:https://www.cnblogs.com/ysuwangqiang/p/11879180.html
Copyright © 2011-2022 走看看