设为首页 收藏本站
查看: 760|回复: 0

[经验分享] 使用DRBD+Heartbeat+Replication实现MYSQL高可用性

[复制链接]

尚未签到

发表于 2019-1-6 14:34:00 | 显示全部楼层 |阅读模式
近日安装DRBD+heartbeat+replication,怕以后忘记,记录一下。
1,操作系统:centOs 5.6 64-bit ,mysql-5.5.11
2,机器4台,2台作为DRBD,2台作为复制从服务器.防火墙开放必须的端口:比如7898和694,3306等,在这里,作为测试,直接关闭了firewall和selinux.
3,名称:MYSQLM1 IP:172.17.94.209 名称:MYSQLM2 IP:172.17.94.210
      上面2台电脑分别挂在1个10G的硬盘,作为DRBD同步数据盘符。盘符名称:
      /dev/sdb1,挂载目录:/data,同步的磁盘名称/dev/brbd0.
       名称:MYSQLS1 IP:172.17.94.211  名称:MYSQLS2   IP:172.17.94.212
       VIP:172.17.94.208
        
4,编辑主机名称:
#vi /etc/hosts
添加下面2行;
172.17.94.209  MYSQLM1
172.17.94.210 MYSQLM2
这2台电脑都需要添加。
5,安装DRBD和Heartbeat
yum -y install  drbd83 kmod-drbd83
yum -y install heartbeat
yum -y install heartbeat heartbeat-ldirectord heart-pils heartbeat-stonith
6,配置DRBD
#
# please have a a look at the example configuration file in
# /usr/share/doc/drbd83/drbd.conf
#
global{usage-count yes;}
common{syncer{rate 100M;}}
resource r0{
protocol C;
startup{
}
disk{
on-io-error detach;
#size 1G;
}
net{
}
on MYSQLM1{
device /dev/drbd0;
disk /dev/sdb1;
address 172.17.94.209:7898;
meta-disk internal;
}
on MYSQLM2{
device /dev/drbd0;
disk   /dev/sdb1;
address 172.17.94.210:7898;
meta-disk internal;
}
}
从节点MYSQLM2的配置完全一样。
6,在2台电脑分别执行下面命令
#/etc/init.d/drbd start  #启动drbd
#drbdadm create-md r0
#mkfs.ext3 /dev/brbd0
这样,2台电脑分别都创建好了/dev/drbd0
7,在作为主服务器的MYSQLM1上执行下面的命令
#drbdadm primary all  #让MYSQLM1为primary
#mount /dev/drbd0 /data #挂载/dev/drbd0 到/data目录
使用以下命令查看drbd的状态
#service drbd status
#cat /proc/drbd
这样drbd配置完成
然后再安装mysql.其他的地方可以按照以往默认安装,但是需要将数据库安装在/data目录。2台都是需要安装在/data目录
注意点一:将basedir和datadir写入到my.cnf
注意点二:注意赋予/data和/dev/drbd0的权限为mysql:mysql用户组。
8,配置heartbeat
8.1:配置/etc/ha.d/authkeys
vi /etc/ha.d/authkeys
auth 3
#1 crc
#2 sha1 HI!
3 md5 Hello!
保存退出。
#chmod 600 /etc/ha.d/authkeys
2台电脑输入操作一样
8.2:配置/etc/ha.d/ha.cf
debugfile /var/log/ha-debug
logfile      /var/log/ha-log
logfacility   /local0
keepalive 2
deadtime 30
warntime 10
udpport 694
bcast      eth0
ucast  eth0 172.17.94.210 #MYSQLM2此处为ucast eth0 172.17.94.209, 不同之处.
node  MYSQLM1
node  MYSQLM2
ping 172.17.64.1 #网关
ping group1 172.17.94.209 172.17.94.210
hopfudge 1 #活跃数,2台配置一样

保存退出。MYSQLM2的配置大致一样,不一样的地方:"#"红色注释处

8.3配置/etc/ha.d/haresources
vi  /etc/ha.d/haresources
MYSQLM1 IPaddr::172.17.94.208/24/eth0:0 drbddisk::r0 Filesystem::/dev/drbd0::/data::ext3 mysqld
保存退出,2台电脑配置一样.
说明: 上面haresources文件中:
1)MYSQLM1 为默认的primary机器,
2)Ipaddr为/etc/ha.d/resource.d目录里面的一个可执行文件。resource.d里面的所有文件都是可执行的,如果不行,执行下面的指令
#chmod 755 -R /etc/ha.d/resource.d
3) 172.17.94.208就是指定的VIP
4)drbddisk::r0 drbd的硬盘,资源为r0,r0在/etc/drbd.conf中定义的
5)/data挂载点
6)ext3,文件格式
7)mysqld:这个也是/etc/ha.d/resource.d目录下的内容,就是mysql的启动程序。如果没有,可以执行下面指令
#ln -s /etc/init.d/mysqld /etc/ha.d/resource.d/mysqld

8.4,启动heartbeat
#service heartbeat start
#chkconfig --add heartbeat
#chkconfig heartbeat on
9,对于脑裂的处理
9.1:在从节点做如下操作:
#dbdadm secondary r0
#drbdadm -- --discard-my-data connect r0
在主节点如下:
#drbdadm connect r0
或者采用9.2的方法
9.2在2端分别做如下操作:
#drbdadm -- --discard-my-data connect all
#drbdadm connect all
简单说下mysql的主从复制
1,在MYSQLM1登录mysql,执行以下指令:
mysql>grant replication slave,replication client on *.* to repl@'172.17.94.%' identified by 'password';
2,在my.cnf启用二进制日志
log_bin=mysql-bin
说明:在2台从服务器也要启用二进制日志。
3,在my.cnf修改server_id=209
说明:2台从服务器修改server_id=211和212
4,在从服务器写change master to 的时候,master_host记得写VIP[172.17.94.208]
其他的都和默认的主从复制一样了。
整个架构简图如下:









运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-659999-1-1.html 上篇帖子: heartbeat报错解决 下篇帖子: heartbeat 安装使用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表