为了账号安全,请及时绑定邮箱和手机立即绑定

drb+heartbeat完成mysql实时备份

标签:
MySQL

近期公司要上线一个mysql的项目,我们使用drbd+heartbeat进行热备,以保证db的高可用性,这里记录下安装过程。关于drbd的扩容,缩小空间以及meta数据表的备份等详细操作这里就不给出了,感兴趣的同学可以参考drbd官网:www.drbd.org,也可以和我交流,mail to:yang.gy@founder.com

 

一.下载及安装

 

1.yum安装

yum -y install drbd kmod-drbd

yum -y install heartbeat

modprobe drbd

lsmod |grep drbd

默认安装的是drbd8.0.x版本的,有网友反映该版本有同步性能有问题,您也可以通过yum安装最新版,目前最新版本是drbd8.3.x,使用yum -y install drbd83  kmod-drbd83

yum -y install heartbeat.即可

 

2.源码安装

 

二.配置drbd

 

配置文件位于/etc/drbd.conf,主备份机器都要设置

更改内容如下:

 

drbd的配置文件有很多功能,例如:默认启动是否为primary等,我们这里只给出最简单的配置参考:

定义一个名称为data 的resouce,使用协议C(备机确认机制),限速10M,定义两个节点(节点名称等于uname -n),块设备名称为/dev/drbd0对应于分区/dev/sda1,meta数据位于分区,可以更改其他位置,此处有些许玄机,感兴趣的同学请google之。。

准备启动drbd之前,需要分别在2个主机上的 /dev/sda1 分区上创建相应的元数据保存的数据块:

drbdadm create-md data## data对应resouce的名称

service drbd start

 

默认的情况下,两台机器都处于备机状态,可以通过 /proc/drbd状态查看

在需要设置成主机的上面首次同步需要运行:

drbdsetup /dev/drbd0 primary -o #设置为主

mkfs.ext3 /dev/drbd0 #格式化

mkdir /mnt/data

mount /dev/drbd0 /mnt/data #挂载准备使用

touch /mnt/test/{1..100} #写入测试数据

 

三.测试切换

 

设置主机状态为备份:

umount /mnt/data

drbdadm secondary data

设置备机为主:

drbdadm primary data

mount /dev/drbd 0 /mnt/data

ls /mnt/data #查看数据是否已经同步过来

 

四.heartbeat安装

 

先了解一下heartbeat的工作原理及配置参数选项内容的含义,可以参考:http://book.51cto.com/art/200912/168031.htm

 

这里给出我们的配置参数:

 

 

几点说明:

1.ha.cf文件用于定义节点名称,切换超时时间,监视的网卡名称以及是否启用crm。

2.authkeys定义主备机之间的认证方式,目前有三种,请记得,如果定义了 auth 1则次行一定也是以1开始定义,其他两种方式也一样的。

3.haresources文件则定义需要监视的资源及服务。第一个域是主机的uname -n的名称,第二个域是告诉heartbeat这是一个drbd块设备,第三个域告知drbd的挂载信息,第四个域说明监视的服务,可以是apache,mysql等,第五个域用于定义vip,会跟从主机的ip漂浮

更改配置文件后,就可以启动heartbeat了:

service heartbeat start

 

五.mysql安装

mysql的安装就不说了,注意如果是源码安装,请指定安装目录为/mnt/data

 

六.整体测试(引用):

    1) 手工调用heartbeat的节点切换脚本:

    执行/usr/lib/heartbeat/hb_standby 脚本(注意你的),让heartbeat通知对方节点自己请求变成standby节点,请求对方成为primary节点,切换工作在10s左右即完成.

    2) 拔掉网线,测试在primary节点的网络断开后的切换情况

    通过测试,在拔掉网线后,当主节点发现无法和standby节点无法通信后,会在log中记录warn信息,如果延续时间达到在ha.cf中设定的时长后,会开始释放资     源,standby节点发现无法和主节点通信一段时间(ha.cf设定)后,开始尝试启动资源并将自己active成primary节点。切换过程除开ha.cf中设定的时长之外      的时间段同样非常短。

    3) shutdown primary主机,测试是否能够正常切换,基本上和上面测试2差不多。

    4) primary node 掉电测试,这里还没有到机房实际操作过,后面会继续测试这个操作。

测试结果:

    1,正常切换,数据完整。

    2,正常切换,但是主从数据相差一条。

    3,正常切换,数据完整。

    4,正常切换,数据完整。

 

 

 

 

 

©著作权归作者所有:来自51CTO博客作者爱斯基摩的原创作品,如需转载,请注明出处,否则将追究法律责任

mysql数据库heartbeat


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消