加入收藏 | 设为首页 | 会员中心 | 我要投稿 甘南站长网 (https://www.0941zz.com/)- 科技、行业物联网、开发、云计算、云管理!
当前位置: 首页 > 数据库 > MySql > 正文

MHA+MySQL实现mysql高可用

发布时间:2023-02-16 13:19:04 所属栏目:MySql 来源:互联网
导读:1. MHA的简单介绍 简介 MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是一套优秀的作为MysqL高可用性环境下故障切换和主从提升的高可用软件。在MysqL故障切换
    1. MHA的简单介绍
    简介
    MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是一套优秀的作为MysqL高可用性环境下故障切换和主从提升的高可用软件。在MysqL故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用
 
    已托管至github,对应地址如下
    manager地址,https://github.com/yoshinorim/mha4MysqL-manager
    node地址,https://github.com/yoshinorim/mha4MysqL-node
    截止本文档编写时间为止,最新版本为0.58
    优点
    可参考官方文档详细介绍 https://github.com/yoshinorim/mha4MysqL-manager/wiki/Advantages
    大致总结如下:
 
    1、主从切换非常迅速,通常10-30s
    2、最大程度上解决数据一致性的问题
    3、不需要修改当前已有的MysqL架构和配置
    4、不需要另外多余的服务器
    5、没有性能损耗
    6、没有存储引擎限制
      
 
    2. MHA的搭建概述
    数据库架构:一主两从
 
    master:192.168.142.48
    slave1:192.168.142.49
    slave2:192.168.142.50
    mha架构:
 
    manager:192.168.142.49
    node:192.168.142.48,192.168.142.49,192.168.142.50
    keepalived架构
 
    VIP:192.168.142.235
    节点:192.168.142.48,192.168.142.49
    搭建环境版本
 
    数据库版本:5.7.18,5.7.18-log MysqL Community Server (GPL)
    MHA版本:v0.58,mha4MysqL-manager-0.58 + mha4MysqL-node-0.58
    Keepalived:keepalived-1.4.3
    Linux主机:centos7.2
    主机和安装服务列表
 
    主机IP 安装服务
    192.168.142.48 MysqL master ; mha node ; keepalived
    192.168.142.49 MysqL slave ; mha node && mha manager ; keepalived
    192.168.142.50 MysqL slave ; mha node
    搭建大体步骤
 
    1、keepalived的搭建
    2、linux机器之间配置互信
    3、MysqL主从环境的搭建
    4、MHA的安装和配置
    5、配置文件测试    
        测试ssh连通性
        测试集群中的主从复制
    6、启动MHA管理节点
    
 
    3. keepalived的搭建
    这里使用rpm方式安装,分别在192.168.142.48和192.168.142.49上安装keepalived,也可使用源码编译
 
    1、安装
    yum install keepalived -y
    2、配置文件修改
    vim /etc/keepalived/keepalived.conf
    ! Configuration File for keepalived
    global_defs {
       notification_email {
       root@localhost
    }
       notification_email_from Alexandre.Cassen@firewall.loc
       smtp_server 127.0.0.1
       smtp_connect_timeout 30
       router_id LVS_DEVEL
    }
    vrrp_instance VI_1 {
        state MASTER
        interface eth0
        virtual_router_id 55
        priority 100
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.142.235
        }
    }
    note:其中主MASTER优先级高(100),BACKUP优先级(90)低一些
    3、启动、关闭、查看
    systemctl start keepalived
    systemctl stop keepalived
    systemctl status keepalived
    
 
    4. linux机器之间配置互信
    服务器之间建立ssh互信的方式很多,这里介绍一种私以为比较便捷的创建方式
 
    1、创建秘钥(回车连续三次即可)
    [root@192-168-142-48]# ssh-keygen -t rsa
    2、进入.ssh目录查看文件
    [root@192-168-142-48]# cd /root/.ssh/ && ls
    id_rsa
    id_rsa.pub
    3、修改id_rsa.pub名称
    mv id_rsa.pub authorized_keys
    4、将/root/.ssh文件夹拷贝到192.168.142.49和192.168.142.50即可建立三台机器之间的互信(如果端口不是默认22,需要额外指定参数 -P port)
    scp -P 8822 -r /root/.ssh 192.168.142.49:/root/
    scp -P 8822 -r /root/.ssh 192.168.142.50:/root/
      
 
    5. MysqL主从环境的搭建
    1、手动搭建或者自动化脚本分别在三台主机上配置MysqL实例,这里可参考MysqL单实例搭建的方法,不在赘述
 
    2、每台主机数据库实例上配置复制用户l和监控用户
 
    1、复制用户
    GRANT SUPER, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'repl'@'192.168.142.%' IDENTIFIED BY '123456';FLUSH PRIVILEGES;
    2、监控用户
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.142.%' IDENTIFIED BY '123456';FLUSH PRIVILEGES;
    3、配置从同步
 
    1、master上执行
    show master status;,记录对应File名称和Position列的数字,这里为 MysqL-bin.000001 154
    2、slave1和slave2上分别执行
    CHANGE MASTER TO MASTER_HOST='192.168.142.48',MASTER_USER='repl',MASTER_PASSWORD='123456',MASTER_PORT=5700,MASTER_LOG_FILE='MysqL-bin.000001',MASTER_LOG_POS=154;
      
 
    6. MHA的安装和配置
    可参考官方文档详细介绍 https://github.com/yoshinorim/mha4MysqL-manager/wiki/Installation
    
    1、每台主机上安装node节点,这里使用rpm方式安装,也可使用源码编译
 
    1、下载
    https://github.com/yoshinorim/mha4MysqL-node/releases  选择对应的rpm包下载
    2、安装依赖
    yum install perl-dbd-mysql -y
    3、安装node节点
    rpm -ivh mha4MysqL-node-0.58-0.el7.centos.noarch.rpm
    
    2、其中一台主机(192.168.142.49)安装manager节点即可,这里使用rpm方式安装,也可使用源码编译
 
    1、下载
    https://github.com/yoshinorim/mha4MysqL-manager/releases  选择对应的rpm包下载
    2、安装依赖
    yum install perl-dbd-mysql perl-Config-Tiny perl-Log-dispatch perl-Parallel-ForkManager -y
    3、安装manager节点
    rpm -ivh mha4MysqL-manager-0.58-0.el7.centos.noarch.rpm
      
    3、创建MHA的配置文件
    app1.cnf,个人安装配置实例完整版已经放置到github,可参考查看,如下为链接
    https://github.com/dwwang1992/configs-of-MHA/blob/master/app1.cnf
      
    4、master_ip_failover_script对应的脚本
    master_ip_failover,个人安装配置实例完整版已经放置到github,可参考查看,如下为链接
    https://github.com/dwwang1992/configs-of-MHA/blob/master/master_ip_failover
      
    5、master_ip_online_change_script对应的脚本
    master_ip_online_change,个人安装配置实例完整版已经放置到github,可参考查看,如下为链接
    https://github.com/dwwang1992/configs-of-MHA/blob/master/master_ip_online_change
      
    6、report_script对应的脚本
    send_report,个人安装配置实例完整版已经放置到github,可参考查看,如下为链接
    https://github.com/dwwang1992/configs-of-MHA/blob/master/send_report
    

(编辑:甘南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读