MySQL高可用(MHA)

MHA的概念

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

MHA 的组成

  1. 自动故障切换过程中,MHA试图从宕机的主服务器上保存二进制日志,最大程度的保证数据不丢失
  2. 使用半同步复制,可以大大降低数据丢失的风险,如果只有一个slave已经收到了最新的二进制日志,MHA可以将最新的二进制日志应用于其他所有的slave服务器上,因此可以保证所有节点的数据一致性
  3. 目前MHA支持一主多从架构,最少三台服务,即一主两从

搭建思路

主从复制+MAH

https://editor.youkuaiyun.com/md/?articleId=118904445

实验环境

//
 MySQL服务器
master 192.168.142.142 安装 node 组件
slave1 192.168.142.143 安装 node 组件
slave2 192.168.142.144 安装 node 组件

MHA-manager 
192.168.142.141  管理节点,安装 manager 组件与node组件

配置软连接

做好主从复制并重启后,配置软连接
将mysql命令和mysql日志文件软连接到/usr/sbin/便于系统识别

// 
[root@slave2 ~]# ln -s /usr/local/mysql/bin/mysql /usr/sbin/
[root@slave2 ~]# ln -s /usr/local/mysql/bin/mysqlbinlog /usr/sbin/

配置MySQL一主两从

为防止master挂掉myslave能及时替换,从服务器也需要提权
授权给两个用户myslave和mha

//
grant replication slave on *.* to 'myslave'@'192.168.142.%' identified by '123123';
grant all privileges on *.* to 'mha'@'192.168.142.%' identified by 'manager';

以下三条都是为了防止MHA检查MySQL检查不通过,理论可不加

// 
grant all privileges on *.* to 'mha'@'master' identified by 'manager';
grant all privileges on *.* to 'mha'@'slave1' identified by 'manager';
grant all privileges on *.* to 'mha'@'slave2' identified by 'manager';

所有从库开启只读功能,刷新权限表

// 
mysql> set global read_only=1;
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

测试检查
在这里插入图片描述

安装MHA

所有服务器安装node,manager服务器还要安装manager组件
在此之前先安装环境

// 
[root@manager ~]# yum -y install epel-release --nogpgcheck 
[root@manager ~]# yum install -y perl-DBD-MySQL \
> perl-Config-Tiny \
> perl-Log-Dispatch \
> perl-Parallel-ForkManager \
> perl-ExtUtils-CBuilder \
> perl-ExtUtils-MakeMaker \
> perl-CPAN

同步所有服务器时间

// 
[root@manager ~]# ntpdate ntp.aliyun.com  ##所有服务器都做
24 Jul 19:42:29 ntpdate[92335]: step time server 203.107.6.88 offset -1.348249 sec

安装node和manager

把node组件压缩包拖到所有服务器的opt下,并解压安装

// 
[root@manager opt]# tar xf mha4mysql-node-0.57.tar.gz -C /root
[root@manager opt]# cd /root/mha4mysql-node-0.57/
[root@manager mha4mysql-node-0.57]# perl Makefile.PL
[root@manager mha4mysql-node-0.57]# make && make install

安装好node组件后有这几个脚本
在这里插入图片描述
把manager压缩包拖到manager服务器的opt下,并解压安装

// 
[root@manager opt]# tar xf mha4mysql-manager-0.57.tar.gz -C /root   //解压还原
[root@manager opt]# cd /root/mha4mysql-manager-0.57/  
[root@manager mha4mysql-manager-0.57]# perl Makefile.PL make && make install

在这里插入图片描述
在这里插入图片描述

在所有服务器上设置ssh免密登录

//
ssh-keygen -t dsa
ssh-copy-id 192.168.142.141
ssh-copy-id 192.168.142.142
ssh-copy-id 192.168.142.143
ssh-copy-id 192.168.142.144

在这里插入图片描述

亲测无密码认证

使用脚本管理VIP

// 
[root@manager ~]# cp -ra /root/mha4mysql-manager-0.57/samples/scripts/ /usr/local/bin
[root@manager ~]# ls /usr/local/bin/
[root@manager ~]# ls /usr/local/bin/scripts/
[root@manager ~]# cp /usr/local/bin/scripts/master_ip_failover /usr/local/bin
[root@manager ~]# vim /usr/local/bin/master_ip_failover

在这里插入图片描述

创建MHA软件目录

// 
[root@manager bin]# mkdir /etc/masterha   //创建软件目录
[root@manager bin]# cp /root/mha4mysql-manager-0.57/samples/conf/app1.cnf /etc/masterha/   //拷贝配置文件
[root@manager bin]# vim /etc/masterha/app1.cnf   //修改为以下配置

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值