mysql mha高可用

MySQL高可用架构之MHA 实验前提 此实验要基于gtid主从复制,并且是一主多从。可查看基于gtid的主从复制 主机名 ip 设置 server1 172.25.55.1 主库 server2 172.25.55.2 从库1 server3 172.25.55.3 从库2 一、server1配置 [root@server1 ~]# vim /etc/my.cnf server_id=1 gti... 阅读详情

一、前言

     在原本的一主两从数据库架构中,是没有高可用功能的,当主库挂了时不会自动将剩下的从从升级为主库,只能等待主库恢复才能使用,或者手动切换,但是手动切换后需要更改后端服务中的数据库地址信息,在此情况下,需要引入mha服务来实现一主两从数据库的高可用,mha服务可以在主库挂掉时,自动从剩下的从库中选举出一个主库,再将剩下的从库变更为新主库的从库,该mha也有缺点,只能一次性使用,当发生了一次主从切换后,mha manage服务就会挂掉,挂掉的主库信息也会从mha manage配置文件中剔除,当原主库恢复后,需要手动将原主库更改为新主库的从库,再将信息写入mha manage的配置文件中,再启动mha manage,这样下次主从发生故障时mha manage才会再次发挥作用

     mha对mysql高可用的实现原理,在主从的每个节点,以及mha manage节点部署mha node服务收集每个节点的信息发送到mha manage,当主节点发生故障时,mha manage节点会及时监控到,mha manage会首先检查每个从节点的健康状态,没问题就会在剩下的从节点中选举出新的主节点,然后对剩下的从节点进行主从配置并将从节点更改为只读,这样就完成了主从节点的故障切换

二、构架

ip服务
10.1.60.113mysql、mha node
10.1.60.114mysql、mha node
10.1.60.115mysql、mha node
10.1.60.22mha manage、mha node

三、部署

     需要提前部署好一主两从架构的mysql

     参考:mysql一主两从读写分离搭建_mysql 一主两从搭建-优快云博客

     在github上下载mha node和mha manage安装包 

     mha manage

     参考: Release mha4mysql-manager-0.58 · yoshinorim/mha4mysql-manager · GitHub

     mha node

     参考:https://github.com/yoshinorim/mha4mysql-node/releases/tag/v0.58

     所有节点安装mha依赖

yum install epel-release --nogpgcheck -y
yum install -y perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker perl-CPAN

     在所有主机中创建存放mha安装包目录

      mkdit /opt/mha && cd /opt/mha

      将mha node安装包放到所有节点的mha目录下,mha manage安装包只放到mha manage目录下

     先在所有节点安装mha node服务

     tar -zxvf mha4mysql-node-0.58.tar.gz && ls

    cd  mha4mysql-node-0.58

     perl Makefile.PL

     make && make install

     mha node服务安装完成后在mha manage节点安装mha manage服务

     tar -zxvf mha4mysql-manager-0.58.tar.gz && ls

    cd mha4mysql-manager-0.58

    perl Makefile.PL

    make && make install

    在所有mysql节点创建软连接

    ln -s /usr/local/mysql/bin/mysql /usr/sbin/

    ln -s /usr/local/mysql/bin/mysqlbinlog /usr/sbin/

   配置所有节点互相免密登陆

#113节点执行
ssh-keygen  #一直按回车键即可

ssh-copy-id 10.1.60.114

ssh-copy-id 10.1.60.115

ssh-copy-id 10.1.60.22


#114节点执行
ssh-keygen  #一直按回车键即可

ssh-copy-id 10.1.60.113

ssh-copy-id 10.1.60.115

ssh-copy-id 10.1.60.22

#115节点执行
ssh-keygen  #一直按回车键即可

ssh-copy-id 10.1.60.114

ssh-copy-id 10.1.60.113

ssh-copy-id 10.1.60.22

#22节点执行
ssh-keygen  #一直按回车键即可

ssh-copy-id 10.1.60.114

ssh-copy-id 10.1.60.115

ssh-copy-id 10.1.60.113

 在mha manage上执行以下拷贝文件命令

cp -rp /opt/mha/mha4mysql-manager-0.58/samples/scripts/send_report /usr/local/bin

ls /opt/mha/mha4mysql-manager-0.58/samples/scripts

script目录下有四个文件解释

master_ip_failover:发生故障时自动切换VIP的管理脚本

master_ip_online_change:在线切换vip 的管理脚本

power_manager:故障发生后关闭主机的脚本

send_report:故障切换后发送报警邮件的脚本

我的mysql架构中使用了proxysql读写分离组件,有集成主从故障切换的功能,所以不需要vip,就只拷贝了发送告警的脚本

在mysql主从配置的主库中创建以下用于监控的用户

mysql -u root -p

grant all privileges on *.* to 'mha'@'%' identified by '12345678'

flush privileges;

在mha manage节点中拷贝配置文件

mkdir /etc/masterha

cp /opt/mha/mha4mysql-manager-0.58/samples/conf/app1.cnf   /etc/masterha

编辑配置文件

vi /etc/masterha/app1.cnf

[server default]
manager_log=/var/log/masterha/app1/manager.log  #mha manage日志
manager_workdir=/var/log/masterha/app1          #mha manage工作目录
master_binlog_dir=/var/lib/mysql/           #主库保存binlog的位置,这里的路径要与主库里配置的binlog的路径一致,以便MHA能找到
user=mha               #监控用户 
password=12345678      #监控用户密码
ping_interval=1         #设置监控主库,发送ping包的时间间隔,默认是3秒,尝试三次没有回应的时候自动进行failover
remote_workdir=/tmp     #远端mysql在发生切换时binlog的保存位置
repl_password=12345678   # 主从复制密码
repl_user=deploy             # 主从复制用户    
report_script=/usr/local/bin/send_report #设置发生故障切换后发送的报警的脚本
ssh_user=root               #设置ssh的登录用户名

[server1]                 #发生故障切换后会删除对应故障的地址项配置
hostname=10.1.60.113     #myqsl地址
port=3306                #myqsl端口

[server2]
hostname=10.1.60.114
port=3306

[server3]
hostname=10.1.60.115
port=3306

配置故障切换告警

vi /usr/local/bin/send_report

my $smtp='smtp.qq.com';             # smtp服务器
my $mail_from='123456@qq.com';    # 发件箱
my $mail_user='123456';           # 用户名 QQ号
my $mail_pass='iozjqgxcvasdwlbffb';   # 授权码
my $mail_to=['123456@qq.com'];    # 收件箱

执行mha脚本检查各节点ssh连接状态

masterha_check_ssh --conf=/etc/masterha/app1.cnf

检查数据库主从架构状态

masterha_check_repl --conf=/etc/masterha/app1.cnf 

 

 启动mha manage服务

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 &

tail -f /var/log/masterha/app1/manager.log

ps -ef|grep manage

至此mha搭建完成,现在是当mha发生主从故障切换时需要手动重新配置mha manage服务,重新在配置文件中新增故障的主节点信息,再重新启动mha manage服务 

MySQL高可用之MHA MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司 youshimaton(现就职于Facebook公司)开发,是一套优秀的作为MySQL高可用性环境下故障切换和主从提升 的高可用软件。在MySQL故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且 在进行故障切换的过程中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用。 MHA里有 两个角色一个是MHA Node(数据节点)另一个是M 阅读详情

相关推荐

十一、MYSQL 基于MHA的高可用集群

目前mysql高可用方面是一个相对成熟的解决方案,MHA是一套优秀的MySQL故障切换和主从复制的高可用软件在MySQL故障切换过程中,MHA能做到0-30秒之内完成数据库的故障切换操作,并且在进行故障切换过程中,MHA能够最大程度上保证数据的一致性,已达到真正意义上的高可用。MHA里有两个角色,一个是MHA Node(数据节点)另一个是MHA Manager(管理节点)。

爱吃西红柿的博客 1849

mysql mha 安装_MySQL高可用方案 MHA之一MHA安装

MHA0.58安装MHA(Master High Availability)由两部分组成:MHA Manager(管理节点)和MHA Node(数据节点)。管理节点mha4mysql-manager-0.58mha4mysql-manager-0.58下载地址:wget https://github.com/yoshinorim/mha4mysql-manager/releases/downloa...

weixin_30516429的博客 528

MySQL之MHA高可用

MySQL服务器中,单台服务器无法承载服务量就配置多台MySQL服务器,多台MySQL服务器或者MySQL服务器无冗余的情况下,配置主从复制。MySQL服务器的读和写的压力不均衡可使用MySQL的读写分离,MySQL的读写分离中Master存在单点故障,就得用到MHAMHA(Master High Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件MHA的出现就是解决MySQL单点故障的问题MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作。

提升自己 1739

MHA高可用mysql主从服务器搭建

mysql主从高可用搭建MHA

wswbj的博客 617

MHA实现mysql的高可用

关于 MHA: 1.Master HA,对主节点进行监控,可实现自动故障转 移至其它从节点;通过提升某一从 节点为新的主节点,基于主 从复制实现,还需要客户端配合实现,目前MHA主要支持一 主多 从的架构,要搭建MHA,要求一个复制集群中必须最少有 三台数据库服务器,一主二从, 即一台充当master,一台充 当备用master,另外一台充当从库,如果财大气粗,也 可以用一台专门的服务器来当MH...

wzt888的博客 7688

MySQL MHA 高可用集群搭建

本文详细介绍了基于 MySQL 8.0 的 MHA(Master High Availability)高可用集群搭建流程,核心采用 “Master 主库与 MHA Manager 管理节点合一” 的架构,仅需 3 台物理服务器即可实现 MySQL 高可用。全文围绕 “主从复制搭建→服务器免密通信配置→MHA 组件安装与启动→故障切换(手动 / 自动)→VIP 漂移配置” 五大核心步骤展开,采用 GTID 复制模式保障数据一致性,通过虚拟 IP(VIP)实现应用访问透明化,最终达成主库故障时快速切换

racwwt的博客 1306

MySQL高可用MHA

该参数代表忽略上次 MHA 触发切换产生的文件,默认情况下,MHA 发生切换后会在日志记录,也就是上面设置的日志app1.failover.complete文件,下次再次切换的时候如果发现该目录下存在该文件将不允许触发切换,除非在第一次切换后收到删除该文件,为了方便,这里设置为--ignore_last_failover。当 master 出现故障时,它可以自动将最新数据的 slave 提升为新的 master,然后将所有其他的 slave 重新指向新的 master。整个故障转移过程对应用程序完全透明。

2402_88627342的博客 2603

MySQL高可用之MHA架构企业实战

MHA目前在MySQL高可用方面是一个相对成熟的解决方案,最近客户需求,特分享部署方案给大家

IT邦德 6699

mha4mysql-manager-0.56.tar.gzAndmha4mysql-node-0.56.tar.gz

mha4mysql-manager-0.56.tar.gz mha4mysql-node-0.56.tar.gz

mha4mysql-manager-0.58.tar和 mha4mysql-node-0.58.tar 的源码和rpm包

mha4mysql-manager-0.58.tar和 mha4mysql-node-0.58.tar 的源码和rpm包

mha4mysql-manager-0.58.tar.gz

MHA自动化主服务器故障转移,快速将从服务器晋级为主服务器(通常在10-30s),而不影响复制的一致性,不需要花钱买更多的新服务器,不会有性能损耗,容易安装,不必更改现有的部署环境,适用于任何存储引擎。

MySQL的高可用+MHA

即,是一套优秀的,由日本 DeNA 公司 youshimaton 开发,主要用于保障 MySQL 数据库在主服务器出现故障时,能快速进行主从切换,减少数据库服务中断时间。:通过定期监控主库状态,当主库出现故障(如宕机、网络中断等)时,能自动识别并在从库中选择最合适的节点提升为新主库,整个过程无需人工干预。:在切换过程中,会尽量复制主库未同步到从库的binlog日志,最大程度减少数据丢失;支持GTID(全局事务标识),简化binlog定位与同步流程。

2401_85440017的博客 1907

mha4mysql-*-0.58 合集

找了好久,终于找到了mha .58安装包

mysql高可用方案 - mha

目前在 MySQL 高可用方面是一个相对成熟的解决方案,是一套优秀的作为 MySQL 高可用性环境下故障切换和主从提升的高可用软件。在 MySQL 故障切换过程中,MHA 能做到在 0~30 秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA 能在最大程度上保证数据的一致性,以达到真正意义上的高可用例如:以上就是今天要讲的内容,本文仅仅如何安装和使用mha以及如何安装mysql的主从复制。

weixin_46136875的博客 1313

mha4mysql-manager-0.57.tar.gz

mha4mysql-manager-0.57.tar.gz

mha4mysql-manager-0.56.tar.gz

MHA Manager探测集群的node节点,当发现master出现故障的时候,它可以自动将具有最新数据的slave提升为新的master,然后将所有其它的slave导向新的master上.整个故障转移过程对应用程序是透明的.

上一篇: nacos配置导出
下一篇: proxysql读写分离组件部署
Apex   Predator
博客等级 码龄6年 9371粉丝 289原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值