美文网首页
MySQL之:高可用

MySQL之:高可用

作者: Simon_Ye | 来源:发表于2020-04-03 21:17 被阅读0次

MySQL 高可用

Master HA 或多主模型

  • MMM:Multi Master MySQL,基于主从复制实现
  • MHA:Master High Availability,对主节点进行监控,可实现自动故障转移至其它从节点;通过提升某一从节点为新的主节点,基于主从复制实现,还需要客户端配合实现,目前 MHA 主要支持一主多从的架构,药搭建 MHA,要求一个复制集群中必须最少有三台数据库服务器,一主二从,即一台充当 master,一台充当备用 master,另外一台充当从库,出于机器成本的考虑,淘宝进行了改造,目前淘宝TMHA已经支持一主一从
    官网:https://code.google.com/archive/p/mysql-master-ha/
  • Galera Cluster:wresp
    通过wresp协议在全局实现复制;任何一节点都可读写,不需要主从复制,实现多主可读可写

MHA 集群架构

MHA集群架构
MHA集群架构

MAH 工作原理

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

MHA

MHA 软件由两部分组成,Manager 工具包和 Node 工具包

Manager 工具包主要包括以下几个工具:

  • masterha_check_ssh:检查 MHA 的 SSH 配置状况
  • masterha_check_repl:检查 MySQL 复制状况
  • masterha_manager:启动 MHA
  • masterha_check_status:检查当前 MHA 运行状态
  • masterha_master_monitor:检测 master 是否宕机
  • masterha_master_switch:故障转移(自动或手动)
  • masterha_conf_host:添加或删除配置的 server 信息

Node 工具包:这些工具通常由 MHA Manager 的脚本触发,无需人为操作,主要包括以下几个工具:

  • save_binary_logs:保存和复制 master 的二进制日志
  • apply_diff_relay_logs:识别差异的中继日志事件并将其差异的事件应用于其它的 slave
  • filter_mysqlbinlog:去除不必要的 ROLLBACK 事件(MHA已不再使用此工具)
  • purge_relay_logs:清除中继日志(不会阻塞SQL线程)

注意:为了尽可能的减少主库硬件损坏宕机造成的数据丢失,因此在配置 MHA 的同时建议配置成 MySQL 5.5 的半同步复制


MMA

自定义扩展:

  • secondary_check_script:通过多条网络路由检测 master 的可用性
  • master_ip_ailover_script:更新 Application 使用的 masterip
  • shutdown_script:强制关闭 master 节点
  • report_script:发送报告
  • init_conf_load_script:加载初始配置参数
  • master_ip_online_change_script:更新 master 节点 ip 地址

配置文件:

  • global 配置:为各 application 提供默认配置
  • application 配置:为每个主从复制集群

相关文章

网友评论

      本文标题:MySQL之:高可用

      本文链接:https://www.haomeiwen.com/subject/lnflphtx.html