评论

收藏

[MySQL] drb+heartbeat完成mysql实时备份

数据库 数据库 发布于:2021-07-05 09:14 | 阅读数:365 | 评论:0

  
  近期公司要上线一个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.源码安装
  
   DSC0000.jpg
  二.配置drbd
  
  配置文件位于/etc/drbd.conf,主备份机器都要设置
  更改内容如下:
   DSC0001.jpg
  
  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
  
  这里给出我们的配置参数:
   DSC0002.jpg
  
  
  几点说明:
  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,正常切换,数据完整。

  
  
  

  
  

  
关注下面的标签,发现更多相似文章