Mysql&MHA 高可用配置及故障切换

一、MHA概念

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

  • MHA的出现就是解决Mysql单点的问题
  • Mysql故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作
  • MHA能在故障切换的过程中最大程度受伤保证数据的一致性,以达到真正意义上高可用

1、MHA的组成

MHA Node(数据节点)

  • MHA Node运行在每台Mysql服务器上

MHA Manager(管理节点)

  • MHA Manager 可以单独部署在一台独立的机器上,管理多个master-slave集群,也可以部署在一台slave节点上
  • MHA Manager 会定时探测集群中的master节点,当master出现故障时,它可以自动将最新数据的slave 提升为新的master,然后将所有其他的slave重新指向新的master,整个故障转移过程对应用程序完全透明

2、MHA的特点

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

3、主从复制有多少种复制方法

总共有三种:同步、半同步、异步

异步 

在主从架构中加入当客户端发送了一条update语句,主服务器上I/O 线程将二进制日志写入到binlog文件之后就返回客户端结构,不管从服务器是否已经同步到了自己的relay-log(中继日志中)

  • 优点:性能是最好的
  • 缺点:主服务器宕机,容易造成数据不一致,mysql中默认的就是异步复制

同步

也称全同步,当主服务器完成更新,并且同步到所有从服务器才会返回成功结果

  • 优点:安全
  • 缺点:效率低,影响性能

半同步

将两个方法折中,当主服务器完成更新,至少有一个从服务器接收到并完成更新,主服务器就返回成功

4、MHA工作原理

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

总结

1、MHA主要作用

  • Mysql的高可用 + 故障切换

2、MHA核心部分

MHA组件

  • manager主要的功能:做MHA 启动、关闭管理和检测mysql各种健康状态

node

  • 在发生故障时,尽可能的保存二进制日志,并且实现故障切换(VIP地址飘逸)

3、 MHA需要配置的文件

  • master ip failover:命令工具 ,定义的是基于VIP的检测和故障转移 (VIP从master----->新的 master)
  • app1.conf:mha的主要配置文件,主要定义了mha的工作目录、日志    
  • mysal二进制日志位置
  • 使用mha的登录mysql的用户、密码使用从服务器
  • 身份同步master的账号、密码   (五个)

4、故障切换mha会做哪些动作

  1. mha会多次尝试检测master的存活状态
  2. mhah会多次尝试、尽可能的保存master的二进制日志
  3. mha会根据app1.cnf中的配置部分,进行从服务器------》 主服务器的位置
  4. mha最后会将master的VIP地址切换到从服务器的位置
  5. mha再选择完行的master周,会在其余的salve上执行change master操作,指向性的master, 来保证Mysql的集群的健康性

5、mha故障问题

  • 软件连接
  • 免交互
  • 五个账号授权(其中三个账号是测试环境需要做的)
  • 初次运行MHA功能是,需要临时添加虚拟IP
  • 配置文件--效验 (master_ip_failover 1个故障切换的脚本,app1.cnf mha的主配置文件)
  • 先安装node节点 再安装主节点        


 

你可能感兴趣的:(mysql,数据库)