mysql高可用探究(四)Heartbeat高可用Mysql主主同步方案

转:http://blog.chinaunix.net/uid-20639775-id-3337481.html

 Heartbeat高可用Mysql主主同步方案

1.1  方案简介

本方案使用heartbeat+mysql主主同步来实现mysql数据库的高可用, 当服务器或者masterheartbeat宕掉以后会自动切换到backup上,服务器或者masterheartbeat恢复以后可以自动切换回来,master继续提供服务。

1.2  方案优缺点

Ø  优点:

配置简单、,可配置主机恢复后是否切换回master。不存在单点故障。

Ø  缺点:

mysql服务挂掉或者不可用的情况下不能进行自动切换,需要通过crm模式实现或者额外的脚本实现(比如shell脚本监测到mastermysql不可用就将主上的heartbeat停掉,这样就会切换到backup中去)

默认启动以及切换后的backupmysql不会启动起来,因此这对于mysql复制是很不利的。因此需要做好监控,发生切换以后需要手动去启动。或者mysql之间不使用复制,而是用共享存储或者DRBD,这样能解决这个问题。

不方便扩展。

可能会发生脑裂问题。

1.3  方案架构图

1.4  适用场景

该方案适合只有两台数据库的情况,访问量不大,不需要实现读写分离的情况。

1.5  方案实战

1.5.1 实战环境介绍

服务器名

IP

VIP

系统

Mysql

Master

10.1.1.113

10.1.1.176

Centos 5.5 64bit

5.1.63

Backup

10.1.1.75

10.1.1.176

Centos 5.5 64bit

5.1.63

 

1.5.2 Mysql的安装和配置

Mysql的安装和配置相对来讲非常简单,这里就不做介绍,有兴趣的朋友可以查看我博客中关于mysql 5.1.63版本自动安装的文章http://blog.chinaunix.net/uid-20639775-id-3168737.html

1.5.3 Mysql的主主同步配置

Mysql的主主同步这里也不做介绍了,有兴趣的话可以看一下我博文中关于mysql主从同步管理的介绍,主主同步和主从同步差不多,只是互为主从而已,链接如下:http://blog.chinaunix.net/uid-20639775-id-3254611.html

1.5.4 Heardbeat的安装

Masterbackup服务器都需要安装heardheat软件。下面两种安装方式任选其一。

Ø  Rpm包的安装方式

yum -y install heartbeat-*

Ø  源代码编译安装方式

wget http://www.ultramonkey.org/download/heartbeat/2.1.3/heartbeat-2.1.3.tar.gz

tar xzvf heartbeat-2.1.3.tar.gz

cd heartbeat-2.1.3

./configure

 Make

 make install

1.5.5 Heartbeat的配置

Hearbeat的配置主要包括三个配置文件,authkeysha.cfharesources的配置,下面就分别来看!

Ø  Hosts文件的配置

需要在hosts文件中添加masterbackup主机,加快节点间的通信

Masterbackuphosts节点添加的内容一样,我的配置添加如下内容:

vim /etc/hosts

#dbserverpuppet是我的masterbackup的主机名

10.1.1.113 dbserver

10.1.1.75 puppet

Ø  Authkerys的配置

这个文件用来配置密码认证方式,支持3种认证方式,crcmd5sha1,从左到右安全性越来越高,消耗的资源也越多。因此如果heartbeat运行在安全的网路之上,比如私网,那么可以将验证方式设置成crcmasterbackupauthkeys配置一样。我的authkeys文件配置如下:

vim /etc/ha.d/authkeys

auth 1

1 crc

Ø  ha.cf的配置

masterha.cf的配置

vim /etc/ha.d/ha.cf

logfile /var/log/ha-log

logfacility     local0

keepalive 2

deadtime 30

warntime 10

initdead 60

udpport 694

ucast eth0 10.1.1.75

auto_failback on

node    dbserver

node    puppet

ping 10.1.1.1

respawn hacluster /usr/lib64/heartbeat/ipfail

backupha.cf的配置

vim /etc/ha.d/ha.cf

logfile /var/log/ha-log

logfacility     local0

keepalive 2

deadtime 30

warntime 10

initdead 60

udpport 694

ucast eth0 10.1.1.113

auto_failback on

node    dbserver

node    puppet

ping 10.1.1.1

respawn hacluster /usr/lib64/heartbeat/ipfail

Ø  haresources的配置

haresources用来设置master的主机名、虚拟IP、服务以及磁盘挂载等,masterbackup的配置是一样的,下面的mysqld需要做成服务,放在/etc/rc.d/init.d/目录下,配置配置如下:

vim /etc/ha.d/haresources

dbserver  10.1.1.176/32/eth0 mysqld

1.5.6 Heartbeat的启动

在启动masterbackup上的mysqld启动以后,启动masterbackupkeepalived

/etc/rc.d/init.d/heartbeat start

并将此启动语句加入到masterbackup/etc/rc.local中去

1.5.7 方案测试

环境搭建好以后,就需要进行周密的测试,看是否实现了预期的功能:

Ø  停掉master上的mysqld,看看是否切换(因为heartheat不检查服务的可用性,因此需要你通过而外的脚本来实现,方法前面已经描述)

Ø  停掉masterheartheat看看是否能正常切换。

Ø  停掉master的网络或者直接将master系统shutdown,看看能否正常切换。

Ø  启动masterheartbeat看看是否能正常切换回来。

Ø  重新启动master看看能否切换过程是否OK

1.5.8 监控方案

因为heartbeat不监控资源的可用性以及切换后会将资源停止,所以需要加强对资源和heartbeat的监控,推荐采用nagios软件来进行可用性的监控。

    A+
发布日期:2015年12月03日  所属分类:未分类

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: