MySQL实现高可用架构之MHA学号

  学号:20021110101        姓名:遆晶晶

【嵌牛导读】 MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,是一套优秀的作为 MySQL 高可用性环境下故障切换和主从提升的高可用软件。

【嵌牛鼻子】MySQL Java Web技术解析         MHA

【嵌牛正文】

一 概述

       在MySQL故障切换过程中,MHA在监控到master节点故障时,会提升其中拥有最新数据的slave节点成为新的master节点,在此期间,MHA会通过与其他从节点获取额外信息来避免一致性方面的问题。

       MHA还提供了master节点的在线切换功能,即按需切换master/slave节点。

       MHA能做到0~30秒之内自动完成数据库的故障切换操作,并在进行故障切换的过程中,MHA能最大程度上保证数据的一致性,以达到真正意义上的高可用。

二 MHA服务

      MHA服务有两种角色,分别是管理节点MHA Manager和数据节点MHA Node

      MHA Manager:通常单独部署在一台独立机器上管理多个master/slave集群(组),每个master/slave集群称作一个application,用来管理统筹整个集群。

      MHA Node: 运行在每台MySQL服务器器上(master/slave/manager),它通过监控具备解析和清理logs功能的脚本来加快故障转移。

      主要是接收管理节点所发出指令的代理,代理需要运行在每一个mysql节点上。简单讲node就是用来收集从节点服务器上所生成的bin-log。对比打算提升为新的主节点之上的从节点是否拥有并完成操作,如果没有发给新主节点在本地应用后再将从节点提升为主节点。

       每个复制组内部和Manager之间都需要ssh实现无密码互连,只有这样,在Master出故障时,Manager才能顺利的连接进去,实现主从切换功能。

三 MHA的工作原理

1:从宕机崩溃的master节点保存二进制日志事件(bin-log events);

2:识别含有最新更新的slave;

3:应用差异的中继日志(relay log)到其他slave;

4:应用从master保存的二进制日志事件(bin-log events);

5:提升一个slave为新的master;

6:使用其他的slave连接新的master进行复制。

四 MHA提供的工具

masterha_check_ssh                            MHA依赖的ssh环境检测工具

masterha_check_repl                            MySQL复制环境监测工具

masterga_manager                               MHA服务主程序

masterha_check_status                        MHA运行检测工具

masterha_check_monitor                      MySQLmaster节点可用检测工具

masterha_master_swith:master            节点切换工具

masterha_conf_host                              添加或删除配置的节点

masterha_stop                                      关闭MHA服务的工具

Node节点:(这些工具通常由MHA Mananger的脚本出发,无需人为操作)

save_binary_logs                           保存和复制master的二进制日志

apply_diff-reply_logs                      识别差异和中继日志事件并应用于其他slave

purge_reply_logs                           清楚中继日志(不会阻塞SQL线程)

自定义扩展:

secondary_check_script                 通过多条网络路由检测master的可用性

master_ip_failover_script                更新application使用的masterip

report_script                                    发送报告

init_conf_load_script                       加载初始配置参数

master_ip_online_change_script     更新master节点ip地址

你可能感兴趣的:(MySQL实现高可用架构之MHA学号)