MySQL-集群的高可用

本文介绍了Multi-MasterReplicationManager(MMM)用于MySQL主主复制的监控和故障转移,对比了MHA(MasterHighAvailability)、GaleraCluster和MySQL的GroupReplication(GR)技术。重点阐述了MHA的工作原理,包括自动故障切换机制和所需的SSH配置。
摘要由CSDN通过智能技术生成

MMM: Multi-Master Replication Manager for MySQL,Mysql主主复制管理器是一套灵活的脚本程序,基于perl实现,用来对mysql replication进行监控和故障迁移,并能管理mysql Master-Master复制的配置(同一时间只有一个节点是可写的)

官网:

http://www.mysql-mmm.org     https://code.google.com/archive/p/mysql-master-master/downloads

MHA Master High Availability,对主节点进行监控,可实现自动故障转移至其它从节点;通过提升某一从节点为新的主节点,基于主从复制实现,还需要客户端配合实现,目前MHA主要支持一主多从的架构,要搭建MHA,要求一个复制集群中必须最少有三台数据库服务器,一主二从,即一台充当master,一台充当备用master,另外一台充当从库,出于机器成本的考虑,淘宝进行了改造,目前淘宝TMHA已经支持一主一从

弊端:管理端只能用Centos7做,其容灾性好,但其只能达到999

官网:  https://code.google.com/archive/p/mysql-master-ha/

Galera Cluster:wsrep(MySQL extended with the Write Set Replication)通过wsrep协议在全局实现复制;任何一节点都可读写,不需要主从复制,实现多主读写,容灾可达9999,但是灵活性不好,比较古板

GR(Group Replication):MySQL官方提供的组复制技术(MySQL 5.7.17引入的技术),基于原生复制技术Paxos算法、

MHA集群架构

提升原则:健康(服务器和数据健康)、关系好 

首先MHA是一个manager管控多个业务的集群架构体系,它的高可用实现主服务器宕机,提升新主。它基于远程连接ssh协议来同步数据(同步主节点的master的binlog events),此时会涉及到两种情况:

①主节点数据库宕机,那么它会基于ssh协议直接将binlog events 直接同步到从服务器中,并将其提升为新主(必须要健康),其它从节点change master to 直接指向新主,从而实现新一轮的主从复制

②主节点直接宕机;如果是主节点数据库宕机,一旦主节点数据库宕机,此时MHA的manager就会从后台挑选一个日志差异化最小的latest slave作为新主,将主节点的二进制日志对应的数据,基于远程连接协议同步到提升新的从节点去。同步之后,新的latest slave去重放binlog events,重放完之后,从服务器就会变成一个新主(此时新主二进制日志的数据量和之前的master数据量相差无几),新的主节点会将它的二进制日志同步给从节点,从而形成新一轮的主从复制

在master节点启用参数:

sync_binlog=1     每次写后立即同步二进制日志到磁盘,性能差

 【注】:MHA是基于远程连接协议ssh来同步数据的,所以必须要求做MHA整个高可用集群架构之前,必须先基于key验证,做免密(管理节点和所有的主节点、以及所有的从节点做key验证)

MHA工作原理

1.MHA利用SELECT 1 As Value指令判断master服务器的健康性,一旦master宕机,MHA从宕机崩溃的master保存二进制日志事件(binlog events)

2.识别含有最新更新的slave,新的latest slave去重放binlog events,重放完之后,从服务器就会变成一个新主(此时新主二进制日志的数据量和之前的master数据量相差无几)

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

4.应用从master保存的二进制日志事件(binlog events)

5.提升一个slave为新的master

6.使其他的slave连接新的master进行复制

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

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

masterha_check_ssh 检查MHA的SSH配置状况

masterha_check_repl 检查MySQL复制状况

masterha_manger 启动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线程)

自定义扩展:

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配置:为每个主从复制集群

步骤:①:实现基于KEY密码认证

           ②:manager节点安装两个mha程序包,其他被管理节点只需安装node包

  • 30
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值