环境

系统:Centos 7.4 x64

服务:Mariadb 5.5 、Keepalived 1.3.5.6


 结构

主1:192.168.1.108

主2:192.168.1.109

VIP:192.168.1.101


安装 Mysql主主复制:http://www.cnblogs.com/xiangsikai/p/9051638.html


1.两台分别安装 Keepalived

yum -y install keepalived

2.修改Keepalived主配置文件(可提前备份源配置文件)

清空:echo > /etc/keepalived/keepalived.conf

vim /etc/keepalived/keepalived.conf

global_defs {
notification_email {
# 定义通知邮箱,有多个可以换行添加
xiangsikai@126.com
}
# 定义邮件的邮件账户
xiangsikai@126.com # 定义发件服务器
smtp_server 192.168.1.164 # 定义连接smtp服务器超时时间
smtp_connect_timeout 30 # id名称两端需要相同
router_id Mysql-HA
} vrrp_instance VI_1 { # 两端都设置BACKUP
state BACKUP # 定义虚拟IP的网卡
interface ens32 # 定义id 两端需要相同
virtual_router_id 77 # 优先级 主1 应设置成100
priority 100
advert_int 1 # 不主动抢占资源,只在master这台优先级高的设置,backup不设置
#nopreempt authentication { # 关联类型
auth_type PASS # 两端密码需要相同“1111”
auth_pass 1111
}
virtual_ipaddress { # 定义虚拟VIP
192.168.1.101
}
} # 填写虚拟VIP与端口
virtual_server 192.168.1.101 3307 {
delay_loop 2 # LVS算法,用不到,我们就关闭了
lb_algo rr # LVS模式,如果不关闭,备用服务器不能通过VIP连接主MySQL
lb_kind DR # 同一IP的连接60秒内被分配到同一台真实服务器
#persistence_timeout 50 protocol TCP # 填写本地mysql端IP 及 端口
real_server 192.168.1.108 3307 {
# 权重值
weight 3 # 服务关闭后启动此端口
notify_down /DATA/shell/mysql.sh
TCP_CHECK { # 连接超时
connect_timeout 3 # 重试次数
nb_get_retry 3 # 重试间隔时间
delay_before_retry 3
}
}
}

主1 : 有备注说明

global_defs {
notification_email {
xiangsikai@126.com
}
xiangsikai@126.com
smtp_server 192.168.1.164
smtp_connect_timeout 30
router_id Mysql-HA
}
vrrp_instance VI_1 {
state BACKUP
interface ens32
virtual_router_id 77
priority 50
advert_int 1
#nopreempt
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.101
}
} virtual_server 192.168.1.101 3307 {
delay_loop 2
lb_algo rr
lb_kind DR
#persistence_timeout 50
protocol TCP
real_server 192.168.1.108 3307 {
weight 3
notify_down /DATA/shell/mysql.sh
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}

主1:原配置文件

global_defs {
notification_email { # 定义通知邮箱,有多个可以换行添加
xxxxxxx@126.com }
global_defs {
notification_email { # 定义发送邮件的邮箱
xxxxxx@126.com }
# 定义邮件的邮件账户
xiangsikai@126.com # 定义发件服务器
smtp_server 192.168.1.164 # 定义连接smtp服务器超时时间
smtp_connect_timeout 30 # id名称两端需要相同
router_id Mysql-HA
} vrrp_instance VI_1 { # 两端都设置BACKUP
state BACKUP # 定义虚拟IP的网卡
interface ens32 # 定义id 两端需要相同
virtual_router_id 77 # 优先级 主1 应设置成100
priority 90
advert_int 1 # 不主动抢占资源,只在master这台优先级高的设置,backup不设置
#nopreempt authentication { # 关联类型
auth_type PASS # 两端需要相同的密码“1111”
auth_pass 1111
}
virtual_ipaddress { # 定义虚拟VIP
192.168.1.101 }
} # 填写虚拟VIP与端口
virtual_server 192.168.1.101 3307 {
delay_loop 2 # LVS算法,用不到,我们就关闭了
lb_algo rr # LVS模式,如果不关闭,备用服务器不能通过VIP连接主MySQL
lb_kind DR # 同一IP的连接60秒内被分配到同一台真实服务器
#persistence_timeout 50 protocol TCP # 填写本地mysql端IP 及 端口
real_server 192.168.1.109 3307 { # 权重值
weight 3 # 服务关闭后启动此端口
notify_down /DATA/shell/mysql.sh
TCP_CHECK { #连接超时
connect_timeout 3 #重试次数
nb_get_retry 3 #重试间隔时间
delay_before_retry 3
}
}
}

主2 : 有备注说明

global_defs {
notification_email {
xiangsikai@126.com
}
xiangsikai@126.com
smtp_server 192.168.1.164
smtp_connect_timeout 30
router_id Mysql-HA
}
vrrp_instance VI_1 {
state BACKUP
interface ens32
virtual_router_id 77
priority 50
advert_int 1
#nopreempt
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.101
}
} virtual_server 192.168.1.101 3307 {
delay_loop 2
lb_algo rr
lb_kind DR
#persistence_timeout 50
protocol TCP
real_server 192.168.1.109 3307 {
weight 3
notify_down /DATA/shell/mysql.sh
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}

主2:原配置文件

3.启动两端服务

# 1.启动服务
systemctl start keepalived # 2.设置开机自启动
systemctl enable keepalived

4.添加脚本

# 1.创建脚本目录
mkdir -p /DATA/shell/ # 2.创建脚本文件
vim /DATA/shell/mysql.sh #!/bin/bash
pkill keepalived # 3.给脚本添加执行权限
chmod a+x /DATA/shell/mysql.sh

5.查看主VIP

[root@localhost ~]# ip addr | egrep "inet "
inet 127.0.0.1/8 scope host lo
inet 192.168.1.109/24 brd 192.168.1.255 scope global dynamic ens32
inet 192.168.1.101/32 scope global ens32

6.测试飘逸VIP,关闭服务 自行测试。

Keepalived + Mysql 主主复制高可用的更多相关文章

  1. MHA-结合MySQL半同步复制高可用集群(Centos7)

    目录 一.理论概述 本案例部署思路 二.环境 三.部署 部署MHA 部署二进制包MySQL及部署主从复制 部署半同步复制 配置MHA MHA测试 部署lvs+keepalived(lvs1,lvs2) ...

  2. mysql+keepalived 双主热备高可用

    理论介绍:我们通常说的双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务.当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短.MySQL双主复制,即互 ...

  3. Mysql+Keepalived双主热备高可用操作记录

    我们通常说的双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务.当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短.MySQL双主复制,即互为Mast ...

  4. [转帖]【MySQL+keepalived】用keepalived实现MySQL主主模式的高可用

    [MySQL+keepalived]用keepalived实现MySQL主主模式的高可用 https://www.jianshu.com/p/8694d07595bc 一.实验说明 MySQL主主模式 ...

  5. keepalived + haproxy 实现web 双主模型的高可用负载均衡--转

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://xz159065974.blog.51cto.com/8618592/140581 ...

  6. mysql主备切换[高可用]

    到这一步的时候, 是主备部署已经处理好, 请关注:mysql主备部署[高可用] 这次使用的是keepalived-1.2.22.tar.gz版, 官网地址:keeplived官网 笼统知识请自行查询百 ...

  7. Mysql双主双从高可用集群的搭建且与MyCat进行整合

    1.概述 老话说的好:瞻前顾后.患得患失只会让我们失败,下定决心,干就完了. 言归正传,之前我们聊了Mysql的一主一从读写分离集群的搭建,虽然一主一从或一主多从集群解决了并发读的问题,但由于主节点只 ...

  8. 使用Keepalived实现Nginx的自动重启及双主热备高可用

    1.概述 之前我们使用Keepalived实现了Nginx服务的双机主备高可用,但是有几个问题没有解决,今天一起探讨一下. 1)在双机主备机制中,Keepalived服务如果宕了,会自动启用备机进行服 ...

  9. MySQL 高可用性—keepalived+mysql双主(有详细步骤和全部配置项解释)

    博主QQ:819594300 博客地址:http://zpf666.blog.51cto.com/ 有什么疑问的朋友可以联系博主,博主会帮你们解答,谢谢支持! 前言:生产环境中一台mysql主机存在单 ...

  10. keepalived+MySQL双主搭建

    keepalived+MySQL双主搭建过程 首先要简单了解一下keepalived: Keepalived是Linux下一个轻量级别的高可用解决方案.高可用(High Avalilability,H ...

随机推荐

  1. 【转】msxml 操作xml

    转自http://blog.csdn.net/dai_jing/article/details/8393392,原始出处不详. 1.简介 在.NET平台,微软为C#或托管C++程序员提供了丰富的类库, ...

  2. Android音频文件浏览+音频播放

    该Demo执行后,会显示全部你sd卡上的音乐文件列表, 并能够点击列表选择某一首歌曲进行播放. 执行效果: 点击download出现: 然后点击歌曲调用系统播放器播放. 源码: activity_au ...

  3. LBP纹理特征

    LBP-Local Binary Pattern,局部二值模式. 灰度不变性 改进:圆形LBP.旋转不变性 MB-LBP特征,多尺度Multiscale Block LBP: [转载自] 目标检测的图 ...

  4. 一个简单RPC框架是怎样炼成的(VI)——引入服务注冊机制

    开局篇我们说了.RPC框架的四个核心内容 RPC数据的传输. RPC消息 协议 RPC服务注冊 RPC消息处理 接下来处理RPC服务的注冊机制.所谓注冊机制,就是Server须要声明支持哪些rpc方法 ...

  5. CSS-微信开放UI样式

    下面的链接是微信开放的CSS的样式: http://weui.github.io/weui/ 附上GitHub地址:https://github.com/weui/weui

  6. python的猴子补丁monkey patch

    monkey patch指的是在运行时动态替换,一般是在startup的时候. 用过gevent就会知道,会在最开头的地方gevent.monkey.patch_all();把标准库中的thread/ ...

  7. ASP.Net请求处理机制初步探索之旅 - Part 2 核心(转)

    开篇:上一篇我们了解了一个请求从客户端发出到服务端接收并转到ASP.Net处理入口的过程,这篇我们开始探索ASP.Net的核心处理部分,借助强大的反编译工具,我们会看到几个熟悉又陌生的名词(类):Ht ...

  8. vitess数据中心迁移步骤

    在使用vitess的时候我们会遇到刚开始所有的元数据都在同一个ETCD集群中,后续随着业务的增长需要进行数据中心拆分: 分别拆分成多个Local集群的数据中心: 以下就简单说明下迁移步骤: 迁移拓扑图 ...

  9. 自动适应label

    CGFloat btnH = 300; NSString *text=@"你在这是NSString的对象方法,一个字符串实例调用该方法时,方法会通过传入的参数返回一个CGRect型数据,这个 ...

  10. Centos7 下Boost 1.61.0源码 配置开发环境

    1 下载地址 https://sourceforge.net/projects/boost/files/boost/1.61.0/ boost_1_61_0.tar.gz 2 卸载系统自带的boost ...