MySQL5.6 部署MHA
趁着最近几天休息,就把之前没有补全的博客也来补补。 今天就和大家聊聊MySQL高可用方案中的MHA 在中小型架构中,针对MySQL做高可用 用的最多的可能就是keepalived/heartbeat+MySQL Replication。 这种方案配置简单、维护方便,并且也能实现MySQL的故障转移,因此更多的倾向于此架构 MHA是什么? MHA是由日本Mysql专家用Perl写的一套Mysql故障切换方案,来保障数据库的高可用性,它的功能是能在0-30s之内实现主Mysql故障转移(failover),MHA故障转移可以很好的帮我们解决从库数据的一致性问题,同时最大化挽回故障发生后数据的一致性。 MHA里有两个角色一个是node节点一个是manager节点,要实现这个MHA,必须最少要三台数据库服务器,一主多备,即一台充当master,一台充当master的备份机,另外一台是从属机,这里实验为了实现更好的效果使用四台机器,需要说明的是一旦主服务器宕机,备份机即开始充当master提供服务,如果主服务器上线也不会再成为master了,因为如果这样数据库的一致性就被改变了 这里有一个mha的网络拓扑图,我们先来简单的介绍下 先来聊聊这个拓扑图,文章开篇也有过介绍,MHA有两个重要的角色,一个是manager,另外一个是node; 从这个拓扑图中,或许大家不难分辨出如下信息 1 2 3 4 192.168.1.117manager管理节点 192.168.1.116master主库 192.168.1.118slave01从库+备库 192.168.1.119slave02从库 一、环境初始化 1、修改主机名 1 2 3 4 5 6 7 8 主机:manager执行命令 #sed-i's/HOSTNAME=.*/HOSTNAME=manager/g'/etc/sysconfig/network&&hostnamemanager 主机:master执行命令 #sed-i's/HOSTNAME=.*/HOSTNAME=master/g'/etc/sysconfig/network&&hostnamemaster 主机:slave01执行命令 #sed-i's/HOSTNAME=.*/HOSTNAME=slave01/g'/etc/sysconfig/network&&hostnameslave01 主机:slave02执行命令 #sed-i's/HOSTNAME=.*/HOSTNAME=slave02/g'/etc/sysconfig/network&&hostnameslave02 2、主机名解析 1 2 3 4 5 本文转自zys467754239 51CTO博客,原文链接:http://blog.51cto.com/467754239/1695175,如需转载请自行联系原作者