mysql使用keepalived搭建双master
博客专区 > whaon 的博客 > 博客详情
mysql使用keepalived搭建双master
whaon 发表于3年前
mysql使用keepalived搭建双master
  • 发表于 3年前
  • 阅读 599
  • 收藏 15
  • 点赞 0
  • 评论 0

移动开发云端新模式探索实践 >>>   

摘要: 不讲具体的安装部署的细节,网上太多了,更多的讲注意事项

这里的双master并不是2个都同时对应用开放写,只是同一个时刻只有1个mysql对外开放写,另一个作为slave接受从master同步过来的数据,当master挂掉后,通过keepalived的VIP转移,使slave变成master,从而形成高可用的环境

keepalived的master配置如下

vrrp_script mycheck {
       script "/usr/local/keepalived/shutdown.sh"
       interval 2                      # check every 2 seconds
       weight 2                        # default prio: +2 if connect ok
}

global_defs {
        router_id NodeA
}

vrrp_instance VI_1 {
    state BACKUP
    interface eth1
    virtual_router_id 151
    priority 201
    advert_int 1 
    nopreempt
    authentication {
        auth_type PASS
        auth_pass pass
    }
    virtual_ipaddress {
        192.168.0.100
    }
    track_script {
        mycheck
    }
}

slave配置如下:

vrrp_script mycheck {
       script "/usr/local/keepalived/shutdown.sh"
       interval 2                      # check every 2 seconds
       weight 2                        # default prio: +2 if connect ok
}

global_defs {
        router_id NodeB
}

vrrp_instance VI_1 {
    state BACKUP
    interface eth1
    virtual_router_id 151
    priority 100
    advert_int 1
    nopreempt
    authentication {
        auth_type PASS
        auth_pass pass
    }
    virtual_ipaddress {
        192.168.0.100
    }
    track_script {
        mycheck
    }
}


几点要说明的:

1.配置成nopreempt表示非抢占,即master由挂掉的状态恢复后,并不抢占VIP,slave端继续提供服务

2.由于nopreempt只有BACKUP中支持,所以上面master和slave都配置成了BACKUP

3.VIP转移只有在keepalived挂掉的情况下才会出现(不一定,等会说明),也就是说机器宕机是可以的,但是mysql本身挂掉了并不能导致keepalived挂掉,所以要检测mysql是否挂掉

4.通过检测mysql占用端口,比如3306并不难严谨,检测mysql进程是否存在也不是很严谨,最好的办法应该是执行mysql的命令如下:

mysql -uroot -proot -h 192.168.0.47 --connect_timeout=5 -e "select 1;"
5.有时候即使keepalived进程不在了,但是VIP还存在,通过ipconfig可能看不到VIP,可以通过

ip -o -f inet addr show
就可以看到VIP还是存在的

所以为了保险起见最好加上:

ip addr del 192.168.0.100 dev eth1
删除VIP

6.数据同步那块可以依赖mysql自己,也可以使用ali的otter来进行同步

http://my.oschina.net/dxqr/blog/524795

https://github.com/alibaba/otter




标签: otter mysql keepalived
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
whaon
粉丝 42
博文 38
码字总数 33114
×
whaon
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: