Heartbeat高可用Mysql主主同步方案
1.1方案简介本方案使用heartbeat+mysql主主同步来实现mysql数据库的高可用, 当服务器或者master的heartbeat宕掉以后会自动切换到backup上,服务器或者master的heartbeat恢复以后可以自动切换回来,master继续提供服务。1.2方案优缺点Ø优点:配置简单、,可配置主机恢复后是否切换回master。不存在单点故障。Ø缺点:当mysql服务挂掉或者不可用的情况下不能进行自动切换,需要通过crm模式实现或者额外的脚本实现(比如shell脚本监测到master的mysql不可用就将主上的heartbeat停掉,这样就会切换到backup中去)。默认启动以及切换后的backup话mysql不会启动起来,因此这对于mysql复制是很不利的。因此需要做好监控,发生切换以后需要手动去启动。或者mysql之间不使用复制,而是用共享存储或者DRBD,这样能解决这个问题。不方便扩展。可能会发生脑裂问题。1.3方案架构图1.4适用场景该方案适合只有两台数据库的情况,访问量不大,不需要实现读写分离的情况。1.5方案实战1.5.1 实战环境介绍服务器名IPVIP系统Mysql
Master10.1.1.11310.1.1.176Centos 5.5 64bit5.1.63
Backup10.1.1.7510.1.1.176Centos 5.5 64bit5.1.63
1.5.2 Mysql的安装和配置Mysql的安装和配置相对来讲非常简单1.5.3 Mysql的主主同步配置Mysql的主主同步这里也不做介绍了1.5.4 Heardbeat的安装Master和backup服务器都需要安装heardheat软件。下面两种安装方式任选其一。ØRpm包的安装方式yum -y install heartbeat-*
Ø源代码编译安装方式wget http://www.ultramonkey.org/download/heartbeat/2.1.3/heartbeat-2.1.3.tar.gztar xzvf heartbeat-2.1.3.tar.gzcd heartbeat-2.1.3./configure Make make install
1.5.5 Heartbeat的配置Hearbeat的配置主要包括三个配置文件,authkeys,ha.cf和haresources的配置,下面就分别来看!ØHosts文件的配置需要在hosts文件中添加master和backup主机,加快节点间的通信Master和backup的hosts节点添加的内容一样,我的配置添加如下内容:vim /etc/hosts#dbserver和puppet是我的master和backup的主机名10.1.1.113 dbserver10.1.1.75 puppet
ØAuthkerys的配置这个文件用来配置密码认证方式,支持3种认证方式,crc,md5和sha1,从左到右安全性越来越高,消耗的资源也越多。因此如果heartbeat运行在安全的网路之上,比如私网,那么可以将验证方式设置成crc,master和backup的authkeys配置一样。我的authkeys文件配置如下:vim /etc/ha.d/authkeysauth 11 crc
Øha.cf的配置master的ha.cf的配置vim /etc/ha.d/ha.cflogfile /var/log/ha-loglogfacility local0keepalive 2deadtime 30warntime 10initdead 60udpport 694ucast eth0 10.1.1.75auto_failback onnode dbservernode puppetping 10.1.1.1respawn hacluster /usr/lib64/heartbeat/ipfail
backup的ha.cf的配置vim /etc/ha.d/ha.cflogfile /var/log/ha-loglogfacility local0keepalive 2deadtime 30warntime 10initdead 60udpport 694ucast eth0 10.1.1.113auto_failback onnode dbservernode puppetping 10.1.1.1respawn hacluster /usr/lib64/heartbeat/ipfail
Øharesources的配置haresources用来设置master的主机名、虚拟IP、服务以及磁盘挂载等,master和backup的配置是一样的,下面的mysqld需要做成服务,放在/etc/rc.d/init.d/目录下,配置配置如下:vim /etc/ha.d/haresourcesdbserver10.1.1.176/32/eth0 mysqld
1.5.6 Heartbeat的启动在启动master和backup上的mysqld启动以后,启动master和backup的keepalived:/etc/rc.d/init.d/heartbeat start
并将此启动语句加入到master和backup的/etc/rc.local中去1.5.7 方案测试环境搭建好以后,就需要进行周密的测试,看是否实现了预期的功能:Ø停掉master上的mysqld,看看是否切换(因为heartheat不检查服务的可用性,因此需要你通过而外的脚本来实现,方法前面已经描述)。Ø停掉master的heartheat看看是否能正常切换。Ø停掉master的网络或者直接将master系统shutdown,看看能否正常切换。Ø启动master的heartbeat看看是否能正常切换回来。Ø重新启动master看看能否切换过程是否OK。1.5.8 监控方案因为heartbeat不监控资源的可用性以及切换后会将资源停止,所以需要加强对资源和heartbeat的监控,推荐采用nagios软件来进行可用性的监控。 饭在锅里,我在床上*^_^* 不知该说些什么。。。。。。就是谢谢 .其实我是一个天才,可惜天妒英才! 男人偷腥时的智商仅次于爱因斯坦! 饭在锅里,我在床上*^_^* 男人与女人,终究也只是欲望的动物吧!真的可以因为爱而结合吗?对不起,我也不知道。。
页:
[1]