Keepalived + Mysql 主主复制高可用
环境
系统: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 主主复制高可用的更多相关文章
- MHA-结合MySQL半同步复制高可用集群(Centos7)
目录 一.理论概述 本案例部署思路 二.环境 三.部署 部署MHA 部署二进制包MySQL及部署主从复制 部署半同步复制 配置MHA MHA测试 部署lvs+keepalived(lvs1,lvs2) ...
- mysql+keepalived 双主热备高可用
理论介绍:我们通常说的双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务.当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短.MySQL双主复制,即互 ...
- Mysql+Keepalived双主热备高可用操作记录
我们通常说的双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务.当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短.MySQL双主复制,即互为Mast ...
- [转帖]【MySQL+keepalived】用keepalived实现MySQL主主模式的高可用
[MySQL+keepalived]用keepalived实现MySQL主主模式的高可用 https://www.jianshu.com/p/8694d07595bc 一.实验说明 MySQL主主模式 ...
- keepalived + haproxy 实现web 双主模型的高可用负载均衡--转
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://xz159065974.blog.51cto.com/8618592/140581 ...
- mysql主备切换[高可用]
到这一步的时候, 是主备部署已经处理好, 请关注:mysql主备部署[高可用] 这次使用的是keepalived-1.2.22.tar.gz版, 官网地址:keeplived官网 笼统知识请自行查询百 ...
- Mysql双主双从高可用集群的搭建且与MyCat进行整合
1.概述 老话说的好:瞻前顾后.患得患失只会让我们失败,下定决心,干就完了. 言归正传,之前我们聊了Mysql的一主一从读写分离集群的搭建,虽然一主一从或一主多从集群解决了并发读的问题,但由于主节点只 ...
- 使用Keepalived实现Nginx的自动重启及双主热备高可用
1.概述 之前我们使用Keepalived实现了Nginx服务的双机主备高可用,但是有几个问题没有解决,今天一起探讨一下. 1)在双机主备机制中,Keepalived服务如果宕了,会自动启用备机进行服 ...
- MySQL 高可用性—keepalived+mysql双主(有详细步骤和全部配置项解释)
博主QQ:819594300 博客地址:http://zpf666.blog.51cto.com/ 有什么疑问的朋友可以联系博主,博主会帮你们解答,谢谢支持! 前言:生产环境中一台mysql主机存在单 ...
- keepalived+MySQL双主搭建
keepalived+MySQL双主搭建过程 首先要简单了解一下keepalived: Keepalived是Linux下一个轻量级别的高可用解决方案.高可用(High Avalilability,H ...
随机推荐
- session和cookie的联系与区别
区别: 1.cookie是存放在浏览器上的,session是存放在服务器上的: 2.cookie不安全,别人可以通过分析本地的cookie并进行cookie欺骗,session比cookie安全: 3 ...
- java -Mac搭建本地服务器并映射到外网
最近在学习Html,小有进步变想着写一个浪漫的静态页面给女朋友浪漫一下,那么问题就来了,如何把我的网页让对网络一窍不通的女朋友看到,所以便想到了是用自己电脑作为服务器的想法.百度以后整理如下: 首先搭 ...
- Oracle起步---创建临时表空间/表空间/创建用户/授权
1. 安装: 百度一下你就知道 2. sqlplus登录/sqlplus命令登录 在安装Oracle时,你需要记住设置的“全局数据库名”(默认为orcl) 和 口令,在以两种方式登录时: 用户名: s ...
- 解决finalflares 安装成功后无法显示问题
按照网上的安装方法:http://blog.sina.com.cn/s/blog_e9370eb80101gias.html 安装插件并破解,安装过程没有任何错误,但是打开max2012始终看不到这个 ...
- 71、Android上对Cookie的读写操作
Cookie是为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据,在Android中也经常用到,接下来我们介绍Cookie在Android里是如何进行读写的. Cookie其实就 ...
- IEnumerable 与 Iqueryable 的区别
IEnumerable 和 IQueryable 共有两组 LINQ 标准查询运算符,一组在类型为 IEnumerable<T> 的对象上运行,另一组在类型为 IQueryable&l ...
- 【BZOJ4108】[Wf2015]Catering 有上下界费用流
[BZOJ4108][Wf2015]Catering Description 有一家装备出租公司收到了按照时间顺序排列的n个请求. 这家公司有k个搬运工.每个搬运工可以搬着一套装备按时间顺序去满足一些 ...
- 10013: An attempt was made to access a socket in a way forbidden by its access permissions
nginx的error.log日志报错: 2018/01/25 11:55:22 [emerg] 3380#15488: bind() to 0.0.0.0:20003 failed (10013: ...
- 高性能Web开发系列
1. 高性能WEB开发基础 http://www.uml.org.cn/net/201404225.asp 2. 高性能WEB开发进阶(上) http://www.uml.org.cn/net/201 ...
- 原生js实现ajax方法
下面是一个比较完整的Ajax function ajax(){ var ajaxData = { type:arguments[0].type || "GET", url:argu ...