本文简单介绍了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. 【转载】Java泛型(一)

    转自:http://www.cnblogs.com/lzq198754/p/5780426.html 1.为什么需要泛型 泛型在Java中有很重要的地位,网上很多文章罗列各种理论,不便于理解,本篇将立 ...

  2. codeforces 711 D.Directed Roads(tarjan 强连通分量 )

    题目链接:http://codeforces.com/contest/711/problem/D 题目大意:Udayland有一些小镇,小镇和小镇之间连接着路,在某些区域内,如果从小镇Ai开始,找到一 ...

  3. 吴裕雄 python 机器学习——数据预处理二元化OneHotEncoder模型

    from sklearn.preprocessing import OneHotEncoder #数据预处理二元化OneHotEncoder模型 def test_OneHotEncoder(): X ...

  4. [lua]紫猫lua教程-命令宝典-L1-01-03. 数值数据

    lua5.3在线手册地址  https://cloudwu.github.io/lua53doc/contents.html#contents 其实我们直接啃手册就够了 推荐如果有基础的先啃手册再看紫 ...

  5. Springboot的多环境配置

    通常应用都会被安装到几个不同的环境(比如开发.测试.生产等),每个环境都会有一些参数是不一样的. Spring Boot对此也提供了支持,配置文件的名称只要满足application-{profile ...

  6. 【Python爬虫程序】抓取MM131美女图片,并将这些图片下载到本地指定文件夹。

    一.项目名称 抓取MM131美女写真图片,并将这些图片下载到本地指定文件夹. 共有6种类型的美女图片: 性感美女 清纯美眉 美女校花 性感车模 旗袍美女 明星写真 抓取后的效果图如下,每个图集是一个独 ...

  7. markdown整理

    html标签# h1 ## h2 ### h3 #### h4 ##### h5 ###### h6 一级标题:内容=== 二级标题:内容--- 强调文字:>内容 链接:[文字](链接地址) 图 ...

  8. putty上传下载文件

    一,需要pscp.exe,习惯上和Putty.exe文件放在一起. 首先需要保证在命令行下可以访问到pscp.exe.可以通过配置Windows的环境变量Path,或者直接通过命令行访问到pscp.e ...

  9. 最漂亮的Spring事务管理详解

    SnailClimb 2018年05月21日阅读 7245 可能是最漂亮的Spring事务管理详解 Java面试通关手册(Java学习指南):github.com/Snailclimb/- 微信阅读地 ...

  10. C语言随笔2: rom ram 及其运行的过程

    内存的分配方式 五个区 :堆区.栈区.全局区.文字常量区.程序代码区 这五个区是ram中的.或者说,堆栈段.数据段.代码段 而rom中,没有堆区和栈区,只有数据段和代码段. ram是在程序运行是的内存 ...