文档章节

mysql使用keepalived搭建双master

whaon
 whaon
发布于 2015/11/16 15:14
字数 511
阅读 671
收藏 16

这里的双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




© 著作权归作者所有

共有 人打赏支持
whaon

whaon

粉丝 45
博文 40
码字总数 36716
作品 0
厦门
程序员
私信 提问
企业中MySQL高可用集群架构三部曲之MM+keepalived

各位老铁们,老张与大家又见面了。看到各位在博客里面给我的留言和访问量的情况,我很是欣慰,也谢谢大家对我的认可。我写这些博客,就是想把自己对于MySQL数据库的一些看法和自己平时的实战...

superZS
06/26
0
0
mysql5.7+keepalived1.3.5搭建热备服务器

1.规划 2.安装准备 mysql主从或者mysql双主,自行搭建这里不再赘述。 注:mysql与keepalived最好在同一台主机。mysql主从开启远程用户 3.keepalived安装 yum -y install keepalived 4.master...

zhuxtqw
05/13
0
0
搭建mysql负载均衡及高可用环境

目标:使用两台主机实现 Mysql 的负载均衡及冗余,并做到双主互备; 环境:rhel5.8,mysql-5.0.77,keepalived-1.2.7,haproxy-1.4.20; 说明: keepalived 实现通过 vrrp协议,通过使一个虚拟I...

好雨知时节
2013/10/23
0
25
mysql高可用+keepalived

生产环境中一台mysql主机存在单点故障,所以我们要确保mysql的高可用性,即俩台mysql服务器如果其中有一台mysql服务器挂掉后,另外一台就能立刻接替进行工作。 MYSQL的高可用方案一般有 Keep...

柴鑫旺
01/02
0
0
服务器集群之keepalived配置高可用(资料)

Linux集群概述 • 根据功能划分为两大类:高可用和负载均衡 • 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务 • 实现高可用的开...

寰宇01
05/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

DRDS SQL 审计与分析——全面洞察 SQL 之利器

摘要: 背景 数据库存储着系统的核心数据,其安全方面的问题在传统环境中已经成为泄漏和被篡改的重要根源。而在云端,数据库所面临的威胁被进一步的放大。因此,对云数据库的操作行为尤其是全...

阿里云官方博客
33分钟前
2
0
大数据就业前景分析的太到位了,想学习大数据的可以看看

大数据广泛应用于电网运行、经营管理及优质服务等各大领域,并正在改变着各行各业,也引领了大数据人才的变革。大数据专业就业前景怎么样?这对于在就业迷途中的我们是一个很重要的信息。 随...

董黎明
41分钟前
2
0
如何利用Photoshop进行快速切图

在UI设计中我们常常使用Ai来进行矢量图的绘制,然后导入Ps中进行设计、排版和导出。 在以前的版本中,切图一直是个很麻烦的事情,要么依托于脚本,要么手动一张张导出,很不方便,这种窘况在...

mo311
47分钟前
3
0
配置防盗链、访问控制Directory、访问控制FilesMatch

11月19日任务 11.25 配置防盗链 11.26 访问控制Directory 11.27 访问控制FilesMatch 通过限制referer来实现防盗链的功能 配置文件增加如下内容 <Directory /data/wwwroot/www.123.com> SetE...

zgxlinux
56分钟前
3
0
docker搭建redis环境

docker 搭建redis单机,主从,哨兵,集群环境: https://github.com/grace-233/docker-config-file/tree/master/redis...

grace_233
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部