本文简单介绍了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
、修改配置文件
#vim /etc/my.cnf
[mysqld]
log-bin
server_id=100
skip_name_resolve=1
、启动mariadb
# systemctl start mariadb 、登录数据库添加主从复制的账户
mysql >grant replication slave on *.* to repluser@'192.168.1.%' identified by ‘123456';
================================================== 从库192.168.1.101
、修改配置文件
#vim /etc/my.cnf
server_id=101
log-bin
read_only
relay_log_purge=0
skip_name_resolve=1 、启动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
、修改配置文件
#vim /etc/my.cnf
server_id=102
log-bin
read_only
relay_log_purge=0
skip_name_resolve=1 、启动mariadb
# systemctl start mariadb 、开启主从模式:注意二进制日志的位置
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程序停止运行,退出前台。

MySQL高可用之MHA配置的更多相关文章

  1. mysql高可用架构 -> MHA配置binlog-server-06

    前期准备 1.准备一台新的mysql实例(db03),GTID必须开启. 2.将来binlog接收目录,不能和主库binlog目录一样 停止mha masterha_stop --conf=/etc/ ...

  2. mysql高可用架构 -> MHA配置VIP漂移-05

    VIP漂移的两种方式 1)通过keepalived的方式,管理虚拟IP的漂移 2)通过MHA自带脚本方式,管理虚拟IP的漂移 MHA脚本方式 虚拟ip漂移的脚本下载地址 -> wget http ...

  3. mysql高可用方案MHA介绍

    mysql高可用方案MHA介绍 概述 MHA是一位日本MySQL大牛用Perl写的一套MySQL故障切换方案,来保证数据库系统的高可用.在宕机的时间内(通常10-30秒内),完成故障切换,部署MHA, ...

  4. MySQL高可用方案MHA自动Failover与手动Failover的实践及原理

    集群信息 角色                             IP地址                 ServerID      类型 Master                     ...

  5. MySQL高可用方案--MHA部署及故障转移

    架构设计及必要配置 主机环境 IP                 主机名             担任角色 192.168.192.128  node_master    MySQL-Master| ...

  6. MySQL高可用方案MHA在线切换的步骤及原理

    在日常工作中,会碰到如下的场景,如mysql数据库升级,主服务器硬件升级等,这个时候就需要将写操作切换到另外一台服务器上,那么如何进行在线切换呢?同时,要求切换过程短,对业务的影响比较小. MHA就提 ...

  7. 【DB宝42】MySQL高可用架构MHA+ProxySQL实现读写分离和负载均衡

    目录 一.MHA+ProxySQL架构 二.快速搭建MHA环境 2.1 下载MHA镜像 2.2 编辑yml文件,创建MHA相关容器 2.3 安装docker-compose软件(若已安装,可忽略) 2 ...

  8. MySQL高可用之MHA (转)

    MySQL高可用之MHA MHA简介 MHA是由日本人yoshinorim(原就职于DeNA现就职于FaceBook)开发的比较成熟的MySQL高可用方案.MHA能够在30秒内实现故障切换,并能在故障 ...

  9. MySQL高可用之MHA的搭建 转

     http://www.cnblogs.com/muhu/p/4045780.html http://www.cnblogs.com/gomysql/p/3675429.html http://www ...

随机推荐

  1. linux中systemctl详细理解及常用命令

    linux中systemctl详细理解及常用命令 https://blog.csdn.net/skh2015java/article/details/94012643 一.systemctl理解 Li ...

  2. The entity type XXX is not part of the model for the current context.

    今天遇到了一个奇葩问题,虽然解决了,但还是一脸懵,先附赠一下别人的解决方案:https://www.cnblogs.com/zwjaaron/archive/2012/06/08/2541430.ht ...

  3. Googletest Primer

    Googletest Primer 原文地址:https://github.com/google/googletest/blob/master/googletest/docs/primer.md In ...

  4. AcWing STL初步学习

    vector, 变长数组,倍增的思想 size() 返回元素个数 empty() 返回是否为空 clear() 清空 front()/back() push_back()/pop_back() beg ...

  5. WLC-Virtual Interface IP

    关于思科WLC,有很多接口类型,如下所示,这里主要针对Virtual IP记录一些最佳实践建议. 思科WLC的Virtual IP地址的作用: • Mobility management • DHCP ...

  6. HL7解析器

    最近做了关于医疗的项目,用了HL7协议,以下是解析的代码: HL7解析器: using System; using System.Text; using System.Xml; using Syste ...

  7. MyBatis-Spring整合之方式3

    通过注解整合 1.在UserDao同级目录下新建接口UserMapper,内容如下: public interface UserMapper { @Select("select * from ...

  8. 普及C组第一题(8.1)

    1999. [2015.8.6普及组模拟赛]Wexley接苹果(apple) 题目: Wexley最近发现了一个古老的屏幕游戏.游戏的屏幕被划分成n列.在屏幕的底端,有一个宽为m列的篮子(m<n ...

  9. Python3 post 嵌套json

    目录 python3 post json burpsuite 抓取 python requests 数据包 小结 python3 post json 前些天python3 post出现的小问题做下记录 ...

  10. SpringBoot+mongoDB实现id自增

    这段时间给朋友做了一个微信小程序,顺便练习一下spring boot,虽然项目使用的是JPA+MySQL,但是好奇尝试了一下MongoDB实现自增ID,虽然MongoDB很少有自增ID的需求(在分布式 ...