高可用MHA
MySQL高可用
- MMM: Multi-Master Replication Manager for MySQL,Mysql主主复制管理器是一套灵活的脚本程序,基于perl实现,用来对mysql replication进行监控和故障迁移,并能管理mysql Master-Master复制的配置(同一时间只有一个节点是可写的) 官网: http://www.mysql-mmm.orghttps://code.google.com/archive/p/mysql-master-master/downloads
- MHA:Master High Availability,对主节点进行监控,可实现自动故障转移至其它从节点;通过提升某一从节点为新的主节点,基于主从复制实现,还需要客户端配合实现,目前MHA主要支持一主多从的架构,要搭建MHA,要求一个复制集群中必须最少有三台数据库服务器,一主二从,即一台充当master,一台充当备用master,另外一台充当从库,出于机器成本的考虑,淘宝进行了改造,目前淘宝TMHA已经支持一主一从 官网:https://code.google.com/archive/p/mysql-master-ha/
- Galera Cluster:wsrep(MySQL extended with the Write Set Replication)通过wsrep协议在全局实现复制;任何一节点都可读写,不需要主从复制,实现多主读写
- GR(Group Replication):MySQL官方提供的组复制技术(MySQL 5.7.17引入的技术),基于原生复制技术Paxos算法
MHA集群架构
Manager—-Master High Availability、M—-master、S—-slave

主从同步,从节点某一个节点同步的是最多的(I2),较前的二进制未同步的(X),其他从节点,只是将日志复制过来,并没有执行完成,在中继日志中还未执行完(I1)

MHA工作原理
1、从宕机崩溃的master保存二进制日志事件(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\_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线程)
注意:为了尽可能的减少主库硬件损坏宕机造成的数据丢失,因此在配置MHA的同时建议配置成MySQL 5.5的半同步复制
- 自定义扩展:
- 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配置:为每个主从复制集群
- 在管理节点上安装两个包: mha4mysql-manager mha4mysql-node
- 在被管理节点安装: mha4mysql-node
实现MHA
4台机器 A主、B从、C从、D-MHA,当A宕机时,由MHA控制B从节点提升为主节点
实现Master
实现slave
在所有节点实现相互之间ssh key验证
Mha验证和启动
排错日志:
/data/mastermha/app1/manager.log
补充
1、此软件比较旧,若主节点宕机了,可实现自动化从节点变成主节点
2、关于主节节点宕机,新增或恢复也需要考虑下
3、mha是运行在前台,可考虑放入后台运行
4、网上查阅相关资料https://cloud.tencent.com/developer/article/1026076https://www.cnblogs.com/gomysql/p/3675429.htmlhttps://blog.51cto.com/14154700/2472806
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 438803792@qq.com
Loading...
keepalived