文档章节

mysql使用keepalived搭建双master

whaon
 whaon
发布于 2015/11/16 15:14
字数 511
阅读 1.7K
收藏 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

粉丝 49
博文 44
码字总数 38920
作品 0
厦门
程序员
私信 提问
加载中
请先登录后再评论。
我的架构演化笔记 功能1: 基本的用户注册

“咚咚”,一阵急促的敲门声, 我从睡梦中惊醒,我靠,这才几点,谁这么早, 开门一看,原来我的小表弟放暑假了,来南京玩,顺便说跟我后面学习一个网站是怎么做出来的。 于是有了下面的一段...

强子哥哥
2014/05/31
976
3
CDH5: 使用parcels配置lzo

一、Parcel 部署步骤 1 下载: 首先需要下载 Parcel。下载完成后,Parcel 将驻留在 Cloudera Manager 主机的本地目录中。 2 分配: Parcel 下载后,将分配到群集中的所有主机上并解压缩。 3 激...

cloud-coder
2014/07/01
6.8K
1
数据库代码辅助工具--MaoCaiJun.Database

MaoCaiJun.DataBase 是一个用于 Microsoft Visual Studio 的数据库代码生成组件。它是基于 xml 文件的代码创建工具,支持sql2000,sql2005,sql2008,access, SQLite MaoCaiJun.Database 数据库...

mccj
2013/02/06
2.2K
1
数据库表单生成器--SQLScreens

SQLScreens 是一个使用 Tcl/TK 编写的简单关系型数据库表单生成工具。可让你快速创建查询界面,并指定相应的表和字段。支持多种数据库,包括:MySQL, SQLite, and INFORMIX, and ODBC for o...

匿名
2013/02/17
872
0
Chrome页面自动刷新插件--smartF5

smartF5是一款chrome插件,用以实现监控页面资源,并自动刷新。 特别适合双屏情况下的DEMO开发,大大提高页面开发效率。 让你键盘上的F5键退休吧! 为什么选择smartF5 本插件具有以下特色: ...

YanisWang
2013/04/04
1.2W
0

没有更多内容

加载失败,请刷新页面

加载更多

搞网站的你,不了解一下共享虚拟主机和备案问题

正文共:1474字 14图,预估阅读时间:4 分钟 今天分享的这一切要从域名备案说起。先科普一下,平时我们访问网站都是用域名访问的,通过DNS服务器将域名解析为IP地址(你知道上网时输入的URL...

郭松成
昨天
3
0
10 分钟学会 pillow 图像处理 16 式

PIL:Python Imaging Library,是Python环境下最受欢迎的图像处理库之一。 pillow简单优雅而功能强大,是图像相关机器学习任务中算法工程师的亲密合作伙伴。 我们将介绍pillow的如下16个图片...

zglg
昨天
3
0
3大排行榜告诉你,Java&Python有多稳

什么编程语言最受欢迎? 零基础小白学什么语言最好找工作? …… 关于这些问题的讨论从来都没停止 今天领扣🐱就来盘点一下 如今最受欢迎的语言到底是什么 Java&Python学习大礼包 资料领取方...

Lintcode
今天
10
0
这道原题答出来了还是跪!今年面试也太难了……

秋招已然到来,Amazon这不又发了一堆岗位,此时可以说是上岸最好机会!不过上周有同学反馈面试亚麻,遇到一题曾经刷过,惨的是最后还是跪了,班班仔细一问原来是这道。 给定一个整数序列,找...

九章算法
今天
0
0
【你只需看一次】YOLO 全系列目标检测算法

文章目录 一、概述 二、Yolo系列全家桶 YOLOv1 开山鼻祖之作 YOLOv2 YOLOv3 YOLOv4 目标检测tricks集大成者 YOLOv5 Fast YOLO Complex-YOLO MV-YOLO YOLO3D YOLO-6D YOLO-LITE Spiking-YOLO ......

osc_5p8bxoq2
22分钟前
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部