数据的重要性对于人们来说重要程度不说自明,在信息时代,数据有着比人们更大的力量,我们也知道最近的斯诺登事件,军事专家对于他掌握的数据给出的评价是,相当于美军十个重装甲师。
数据库的价值可见一斑,数据库的存在为人们提供了更快的查询,那么在一个web网站中如何做到数据库的高可用,保证持续提供服务,下面的实验是通过MHA的故障转移来实现。
实现原理:MHA是由日本Mysql专家用Perl写的一套Mysql故障切换方案以保障数据库的高可用性,它的功能是能在0-30s之内实现主Mysql故障转移(failover),
MHA故障转移可以很好的帮我们解决从库数据的一致性问题,同时最大化挽回故障发生后的数据。MHA里有两个角色一个是node节点 一个是manager节点,要实现这个MHA,必须最少要三台数据库服务器,一主多备,即一台充当master,一台充当master的备份机,另外一台是从属机,这里实验为了实现更好的效果使用四台机器,需要说明的是一旦主服务器宕机,备份机即开始充当master提供服务,如果主服务器上线也不会再成为master了,因为如果这样数据库的一致性就被改变了。
实验环境:vmware 9.0 RHEL5.5
实验所需软件包:http://mysql-master-ha.googlecode.com/files/mha4mysql-node-0.52-0.noarch.rpmhttp://mysql-master-ha.googlecode.com/files/mha4mysql-manager-0.52-0.noarch.rpm
实验大体步骤:
1 首先要保证虚拟机能够上网这里我在vmware里添加了第二块网卡 一块专门用于四台机器通信,一块配置上网
2 关闭selinux和配置IP地址和本地yum源
3 配置epel源
4 配置ssh公钥免登录环境
5 修改hostname
6 配置hosts文件
7 配置Mysql的主从同步关系并通过grant命令赋权
8 安装node包
9 在管理机安装manager包
10 编辑主配置文件
11 测试及排错
12 启动
验拓扑图如下:
1 在配置好IP地址后检查selinux设置
2 在四台机器都配置epel源 这里我找了一个epel源
rpm –ivh http://dl.fedoraproject.org/pub/epel/5Server/i386/epel-release-5-4.noarch.rpm