linux——mysql的高可用MHA

这篇具有很好参考价值的文章主要介绍了linux——mysql的高可用MHA。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、概述

一、概念

二、组成

三、特点

四、工作原理

二、案例

三、构建MHA

一、基础环境

二、ssh免密登录

三、主从复制

master

slave1

四、MHA安装

一、环境

二、安装node

三、安装manager


一、概述

一、概念

        MHA(MasterHigh Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。

        MHA 的出现就是解决MySQL 单点的问题。

        MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作。

        MHA能在故障切换的过程中最大程度上保证数据的一致性,以达到真正意义上的高可用。

二、组成

        MHA manager                管理节点

        MHA node                       数据节点        每个节点上都需要安装

三、特点

        自动故障切换过程中,MHA试图从宕机的主服务器上保存二进制日志,最大程度的保证数据不丢失

        使用半同步复制,可以大大降低数据丢失的风险,如果只有一个slave已经收到了最新的二进制日志,MHA可以将最新的二进制日志应用于其他所有的slave服务器上,因此可以保证所有节点的数据一致性

        目前MHA支持一主多从架构,最少三台服务,即一主两从

四、工作原理

        从宕机崩溃的master 保存二进制日志事件(binlog events);
        识别含有最新的更新slave日志
        应用差异的中继日志(relay log)到其他的slave
        应用从master保存的二进制日志事件
        提升一个slave为新的master
        使其他的slave连接新的master进行复制

二、案例

        192.168.100.3    manager(MHA)            mgt
        192.168.100.4    master                                master
        192.168.100.5    slave                                   slave1
        192.168.100.6    slave                                  slave2

三、构建MHA

一、基础环境

        关闭防火墙

        设置selinux宽容模式

        配置静态IP

                    192.168.100.3    manager(MHA)            mgt
                    192.168.100.4    master                                master
                    192.168.100.5    slave                                   slave1
                    192.168.100.6    slave                                  slave2

        修改主机名

                    192.168.100.3                                        mgt
                    192.168.100.4                                 master
                    192.168.100.5                                     slave1
                    192.168.100.6                                    slave2

二、ssh免密登录

        

        192.168.100.3
                    ssh-keygen
                    for i in 4 5 6;do ssh-copy-id root@192.168.100.$i;donelinux——mysql的高可用MHA,mysql,数据库

          192.168.100.4
                    ssh-keygen
                    for i in 3 5 6;do ssh-copy-id root@192.168.100.$i;donelinux——mysql的高可用MHA,mysql,数据库

         192.168.100.5
                    ssh-keygen
                    for i in 4 3 6;do ssh-copy-id root@192.168.100.$i;donelinux——mysql的高可用MHA,mysql,数据库

         192.168.100.6
                    ssh-keygen
                    for i in 4 5 3;do ssh-copy-id root@192.168.100.$i;donelinux——mysql的高可用MHA,mysql,数据库

         所有节点配置hosts 

                    vim /etc/hostslinux——mysql的高可用MHA,mysql,数据库

                     for i in 4 5 6 ;do scp/etc/hosts 192.168.100.$i:/etc;done
                    192.168.100.3    mgt
                    192.168.100.4    master
                    192.168.100.5    slave1
                    192.168.100.6    slave2linux——mysql的高可用MHA,mysql,数据库

         测试
                    for i in 3 4 5;do ssh 192.168.100.$i ;done        (在192.168.100.3测试   )linux——mysql的高可用MHA,mysql,数据库

                     for i in master slave1 slave2;do ssh $i ;done   linux——mysql的高可用MHA,mysql,数据库

三、主从复制

master

linux——mysql的高可用MHA,mysql,数据库

        vim  /etc/my.cnf
[mysqld]
server-id = 1
log-bin = master-bin
log-slave-updates = truelinux——mysql的高可用MHA,mysql,数据库

ystemctl restart mariadb
mysql -e "grant replication slave on *.* to 'myslave'@'192.168.100.%' identified by '123.com';"
mysql -e "grant all privileges on *.* to 'mha'@'192.168.100.%' identified by '123.com';"
mysql -e "grant all privileges on *.* to 'mha'@'192.168.100.3' identified by '123.com';"
mysql -e "grant all privileges on *.* to 'mha'@'192.168.100.5' identified by '123.com';"
mysql -e "grant all privileges on *.* to 'mha'@'192.168.100.6' identified by '123.com';"
mysql -e "show master status";linux——mysql的高可用MHA,mysql,数据库

slave1

server-id=2
log-bin=master-bin
relay-log=relay-log-bin
relay-log-index=relay-log-bin.indexlinux——mysql的高可用MHA,mysql,数据库

mysql -e "grant replication slave on *.* to 'myslave'@'192.168.100.%' identified by '123.com';"
mysql -e "grant all privileges on *.* to 'mha'@'192.168.100.%' identified by '123.com';"
mysql -e "grant all privileges on *.* to 'mha'@'192.168.100.3' identified by '123.com';"
mysql -e "grant all privileges on *.* to 'mha'@'192.168.100.4' identified by '123.com';"
mysql -e "grant all privileges on *.* to 'mha'@'192.168.100.6' identified by '123.com';"
mysql -e "change master to master_host='192.168.100.4',master_user='myslave',master_password='123.com',master_log_file='master-bin.000003',master_log_pos=1007;"

mysql -e “slave start”linux——mysql的高可用MHA,mysql,数据库

slave2

server-id=3
log-bin=master-bin
relay-log=relay-log-bin
relay-log-index=relay-log-bin.indexlinux——mysql的高可用MHA,mysql,数据库

  

mysql -e "grant replication slave on *.* to 'myslave'@'192.168.100.%' identified by '123.com';"
mysql -e "grant all privileges on *.* to 'mha'@'192.168.100.%' identified by '123.com';"
mysql -e "grant all privileges on *.* to 'mha'@'192.168.100.3' identified by '123.com';"
mysql -e "grant all privileges on *.* to 'mha'@'192.168.100.4' identified by '123.com';"
mysql -e "grant all privileges on *.* to 'mha'@'192.168.100.5' identified by '123.com';"
mysql -e "change master to master_host='192.168.100.4',master_user='myslave',master_password='123.com',master_log_file='master-bin.000003',master_log_pos=1007;"

mysql -e “slave start”linux——mysql的高可用MHA,mysql,数据库

四、MHA安装

一、环境

        所有节点安装perl环境

yum install epel-release -y &&yum install epel-release -y(第二次是更新)linux——mysql的高可用MHA,mysql,数据库
yum -y install perl-DBD-MySQL perl-ExtUtils-MakeMaker perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes perl-CPANlinux——mysql的高可用MHA,mysql,数据库

二、安装node

        所有节点安装node(已经下载的源码包)

tar xf mha4mysql-node-0.57.tar.gz
cd mha4mysql-node-0.57
perl Makefile.PL && make && make installlinux——mysql的高可用MHA,mysql,数据库

        cd /usr/local/bin        (发现存在文件)linux——mysql的高可用MHA,mysql,数据库

yum install epel-release -y && yum install epel-release -y && yum -y install perl-DBD-MySQL perl-ExtUtils-MakeMaker perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes perl-CPAN&&tar xf mha4mysql-node-0.57.tar.gz && cd mha4mysql-node-0.57 && perl Makefile.PL && make && make install && cd /usr/local/bin && lslinux——mysql的高可用MHA,mysql,数据库

三、安装manager

tar xf mha4mysql-manager-0.57.tar.gz
cd /root/mha4mysql-manager-0.57
perl Makefile.PL && make && make install
cp sample/scripts/master_ip_failover /usr/local/bin/
cp sample/scripts/master_ip_online_change     /usr/local/bin/

cd /usr/local/bin 

vim    master_ip_failover   linux——mysql的高可用MHA,mysql,数据库

linux——mysql的高可用MHA,mysql,数据库

        脚本说明(master_ip_failover)
            master_ip_failover    自动切换时 VIP 管理的脚本
            master_ip_online_change    在线切换时 vip 的管理
            power_manager    故障发生后关闭主机的脚本
            send_report    因故障切换后发送报警的脚本

配置文件建立
            mkdir /etc/masterha
            vim /etc/masterha/app1.cnf

        mkdir /var/log/masterha/app1

linux——mysql的高可用MHA,mysql,数据库linux——mysql的高可用MHA,mysql,数据库

测试MHA

   masterha_check_ssh --conf=/etc/masterha/app1.cnf
    masterha_check_repl --conf=/etc/masterha/app1.cnflinux——mysql的高可用MHA,mysql,数据库linux——mysql的高可用MHA,mysql,数据库linux——mysql的高可用MHA,mysql,数据库

启动

nohup masterha_manager --conf=/etc/masterha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/masterha/app1/manager.log 2>&1 &linux——mysql的高可用MHA,mysql,数据库

 此时master不显示vip——iplinux——mysql的高可用MHA,mysql,数据库

停止master后  slave1 会出现vip-ip

linux——mysql的高可用MHA,mysql,数据库

查看slave1状态linux——mysql的高可用MHA,mysql,数据库

 slave2linux——mysql的高可用MHA,mysql,数据库

 实现MySQL高可用MHA文章来源地址https://www.toymoban.com/news/detail-650269.html

到了这里,关于linux——mysql的高可用MHA的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【MySQL数据库】MMM高可用架构

    是一套支持双主故障切换和双主日常管理的脚本程序。MMM 使用 Perl 语言开发,主要用来监控和管理 MySQL Master-Master (双主)复制,虽然叫做双主复制,但是业务上同一时刻只允许对一个主进行写入,另一台备选主上提供部分读服务,以加速在主主切换时备选主的预热,可以说

    2024年02月11日
    浏览(47)
  • MySQL 数据库之 MMM 高可用架构构建

    1. 什么是 MMM   MMM(Master-Master replication manager for MySQL,MySQL 主主复制管理器)是一套支持双主故障切换和双主日常管理的脚本程序。MMM 使用 Perl 语言开发,主要从来监控和管理 MySQL Master-Master(双主)复制,虽然叫做双主复制,但是业务上同一时刻只允许一个主进行写入,

    2024年02月04日
    浏览(47)
  • 使用Docker构建的MySQL主从架构:高可用性数据库解决方案

    MySQL主从架构,我们已经在vmware虚拟机上实践过了,接下来我们一起探讨在docker中如何使用MySQL主从架构。 🏠个人主页:我是沐风晓月 🧑个人简介:大家好,我是沐风晓月,阿里云社区博客专家😉😉 💕 座右铭: 先努力成长自己,再帮助更多的人 ,一起加油进步🍺🍺🍺

    2024年02月08日
    浏览(89)
  • 【微服务部署】九、使用Docker Compose搭建高可用双机热备MySQL数据库

      通常,一般业务我们使用云服务器提供的数据库,无论是MySQL数据库还是其他数据库,云服务厂商都提供了主备功能,我们不需要自己配置处理。而如果需要我们自己搭建数据库,那么考虑到数据的高可用性、故障恢复和扩展性,必须做数据备份配置。 一、MySQL 的多种数

    2024年02月07日
    浏览(47)
  • MySQL----MHA高可用

    MHA(MasterHigh Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。 MHA 的出现就是解决MySQL 单点的问题。 MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作。 MHA能在故障切换的过程中最大程度上保证数据的一致性,以达到真正意义上的高可用。

    2024年02月12日
    浏览(42)
  • MySQL高可用MHA

    MHA(MasterHigh Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件 MHA 的出现就是解决MySQL 单点的问题。 MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作。 MHA能在故障切换的过程中最大程度上保证数据的一致性,以达到真正意义上的高可用。

    2024年02月12日
    浏览(38)
  • MySQL-高可用MHA(二)

    目录 🍁通过keepalived方式 🍂安装keepalived 🍃防火墙策略 🍃keep配置文件 🍂MHA应用keepalived 🍃停止MHA 🍃启动MHA 🍃检查状态 🍃测试 🍁通过脚本实现VIP切换 🍂网卡环境配置 🍂MHA应用脚本 🍃停止MHA 🍃启动MHA 🍃检查状态 🍃测试     🦐博客主页:大虾好吃吗的博客    

    2023年04月17日
    浏览(45)
  • MySQL--MHA高可用方案

            MHA 在监控到 master 节点故障时,会提升其中拥有最新数据的 slave 节点成为新的master 节点,在此期间,MHA 会通过于其它从节点获取额外信息来避免一致性方面的问题。MHA 还提供了 master 节点的在线切换功能,即按需切换 master/slave 节点。  MHA Manager(管理节点)和 M

    2024年03月09日
    浏览(58)
  • MySQL-MHA高可用(一)

    目录 🍁同步概念 🍁工作原理 🍃环境拓扑 🍁环境准备 🍂manager 🍂master1 🍂master2 🍂slave 🍃配置半同步复制 🍁master1 🍁master2 🍁slave 🍁查看状态 🍁创建用户并指定主从 🍂master1 🍂master2 🍂slave 🍃配置mysql-mha 🍁配置mha 🍁验证 🍂SSH 有效性验证 🍂集群复制的有效性验

    2023年04月19日
    浏览(35)
  • 【简单认识MySQL的MHA高可用配置】

    MHA(Master High Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。 MHA 的出现就是解决MySQL 单点的问题。 MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作。 MHA能在故障切换的过程中最大程度上保证数据的一致性,以达到真正意义上的高可用。

    2024年02月15日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包