设为首页 收藏本站
查看: 1928|回复: 3

[经验分享] heartbeat实现基于mysql服务自动切换

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2013-8-23 09:18:02 | 显示全部楼层 |阅读模式

由于heartbeat自身可以通过dopd来判断心跳线宕机后,能实现自动切换,但是当一些服务宕机了,就无法实现自动切换了,常见的场景有mysqld服务,有的时候会出现连接不上mysqld服务,比如超过最大连接数的时候,当然还有其他的场景,所以就写了一个脚本来实现自动监控mysqld服务状态来实现heartbeat服务状态进行切换,heartbeat+mysqld+共享存储见前面博文,猛戳《实战Heartbeat+mysql+共享存储实现高可用》

  接下来先看一下脚本是思路:

191003648.jpg

脚本内容如下:



[Shell] 纯文本查看 复制代码
#!/bin/bash
#:Title:monitor heartbeat's mysql resource.
#:Synopsis:
#:Data:2013-08-20 13:36:32
#:Version:1.1
####################################
# 2013.08 by LuoWei <[email]luoweiro@126.com[/email]>
# Copyright (C) 2005 by Baison
####################################
trap 'echo  PROGRAM INTERRUPTED; exit 1'  INT
#The user/password for connection mysql.
username=root
password=
n=0
mysqlmon_log=/var/log/mysqlmon.log
mysql_conmand="/usr/local/mysql/bin/mysql  -u$username -e "
#mysql_conmand="/usr/local/mysql/bin/mysql  -u$username -p$password -e "
echo >$mysqlmon_log
#mail list
function_add_maillist(){
cat >/tmp/userlist<<eof
[email]282127408@qq.com[/email]
[email]luoweiro@126.com[/email]
EOF
}
[ -f /tmp/userlist ] && echo "The file has." || touch /tmp/userlist ;function_add_maillist
function_mail(){
  IFS=$''
    for LINE in `cat /tmp/userlist`;do
      echo "Heartbeat has changed,please see see." | mail -s "Heartbeat standby" $LINE
    done
}
function_retry(){
    echo  `date +"%Y-%m-%d  %H:%M:%S"`  mysqld  cannot be  connected!  >> $mysqlmon_log
    n=$[n + 1]
    service mysqld restart >/dev/null 2>&1
}
function_ha_standby(){
    service heartbeat standby >/dev/null 2>&1
    echo  `date +"%Y-%m-%d  %H:%M:%S"`  mysqld  switched to backup!  >> $mysqlmon_log
    service heartbeat start >/dev/null 2>&1
}
while true;
do
    ifconfig | grep eth0:0 >/dev/null 2>&1
    if [[ $? -eq 0 ]];then
        if $mysql_conmand "use openshop;"   >&/dev/null;then
            n=0
        else
            function_retry
            if [ $n -eq 3 ] ; then
                function_ha_standby
                function_mail
                break
            fi
        fi
    fi
    sleep 10
done
由于我使用的heartbeat是两个节点,索引在两个节点上均执行该脚本即可。

接下来开始测试:

1、停掉HA主节点上的mysqld服务:

由于现在主节点在HA2上,如下图所示:

183728729.png

现在我模拟手动停掉mysqld服务:

183848227.png

然后查看脚本中日志记录:

184324224.png

然后稍等片刻,我们查看HA2上资源状态:

184414171.png

可以看出,mysqld服务自动启动起来了。


2、毁坏性的破坏mysqld服务:

由于集群启动会自动带起mysqld服务,我就让heartbeat启动找不到mysqld资源,所以,我把mysqld服务启动脚本重命名一下,然后看效果。

184927134.png

然后看备用节点上的状况:

185146355.png

资源已经切换到了HA1上了。

接下来查看集群切换日志:

a.首先查看脚本日志:

185604282.png

b.然后查看HA2日志:

185807462.png

c.查看HA1上的日志:

190014357.png

好了,整个脚本测试完成,同时还有集群节点切换的时候还有邮件可以及时通知。

祝:玩的愉快!


</eof

运维网声明 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-8658-1-1.html 上篇帖子: Heartbeat+MySQL+NFS 实现高可用(HA)的MySQL集群 下篇帖子: HeartBeat 实现高可用mysql集群

尚未签到

发表于 2013-9-14 09:20:39 | 显示全部楼层
老天,你让夏天和冬天同房了吧?生出这鬼天气!

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

尚未签到

发表于 2013-11-19 18:57:13 | 显示全部楼层
勃起不是万能的,但不能勃起却是万万都不能的!

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

尚未签到

发表于 2014-1-2 13:29:08 | 显示全部楼层
我也许是个脆弱的-Man╮经不起打击。

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

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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