keepalived+双主架构部署
在高可用集群环境中,keepalived使用的是VIP,利用keepalived自带的服务监控功能和自定义脚本来实现MYSQL故障时自带切换。
Keepalived基于VRRP协议,虚拟冗余路由协议,所谓vrrp的优先级就是它会根据优先级来确定其他在集群中的地位,用0-255来表示,数字越小则表示优先级越低,数值越大表示优先级越高。当值为0,代表着master放弃持有VIP;该值为255时,表示当前master的优先级最高并蚩尤VIP。
1、 搭建GTID+row模式双主环境
|
IP |
主机名 |
作用 |
数据库版本 |
操作系统版本 |
|
172.16.20.32 |
mastera |
master |
Mysql5.7.20 |
Redhat6.7 |
|
172.16.20.34 |
masterb |
master |
Mysql5.7.20 |
Redhat6.7 |
|
172.16.20.30 |
VIP |
1.1. MySQL GTID环境安装
此处参照以前论坛内容:
http://www.cnblogs.com/hmwh/p/9011377.html
https://www.cnblogs.com/hmwh/p/9011377.html
1.2. 分别再主备库上创建同步账号
创建主从复制账号
create user 'rep'@'172.16.20.%' identified by 'mysql';
grant replication slave on *.* to 'rep'@'172.16.20.%';
show grants for 'rep'@'172.16.20.%';
flush privileges;
所有主机创建管理账号:
create user 'zs'@'172.16.20.%' identified by '123456';
grant all privileges on *.* to 'zs'@'172.16.20.%';
flush privileges;
配置主从复制:
change master to master_host='172.16.20.32',master_port=3307,master_user='rep',master_password='mysql',master_auto_position=1;
start slave;
show slave status\G;
无问题后再在主库配置复制关系:
change master to master_host='172.16.20.34',master_port=3307,master_user='rep',master_password='mysql',master_auto_position=1;
start salve;
show slave status\G;
1.3分别安装keepalived软件包
由于我的没有keepalived包
yum install keepalived
下载地址:
rpm -ivh keepalived-1.2.13-5.el6_6.x86_64.rpm

1.4配置MYSQL数据库检测脚本
两台服务器都配置检测脚本:内容根据情况自行修改
cd /etc/keepalived/
vim checkmysql.sh
内容如下:
#!/bin/bash
mysqlstr=/usr/local/mysql5.7/bin/mysql
host=172.16.2.32
user=zs
password=123456
port=3307
#####mysql service machine status health is 1,others 0
mysql_status=1
#####check mysql status#########
$mysqlstr -h $host -u $user -p$password -P $port -e "show status;" > /dev/null 2>&1
if [ $? = 0 ];then
echo "mysql_status=1"
exit 0
else
/etc/init.d/keepalived stop
fi
chmod 775 checkmysql.sh
1.5两台机器上修改keepalived配置文件
主库的:
vim keepalived.conf
vrrp_script vs_mysql_100 {
script "/etc/keepalived/checkmysql.sh"
interval 10
}
vrrp_instance VI_100 {
state BACKUP
nopreempt
interface eth0
virtual_router_id 100
priority 100 --注意,30的为100,34的为90。
advert_int 5
authentication {
auth_type PASS
auth_pass 1314
}
track_script {
vs_mysql_100
}
virtual_ipaddress {
172.16.20.30
}
}
备库的:
vim keepalived.conf
vrrp_script vs_mysql_101 {
script "/etc/keepalived/checkmysql.sh"
interval 10
}
vrrp_instance VI_101 {
state BACKUP
nopreempt
interface eth0
virtual_router_id 100
priority 90
advert_int 5
authentication {
auth_type PASS
auth_pass 1314
}
track_script {
vs_mysql_101
}
virtual_ipaddress {
172.16.20.30
}
}
1.6 启动keepalived
32服务器先启动。
/etc/init.d/keepalived start
/etc/init.d/keepalived status
ps -ef |grep keep

tail -100f /var/log/messages

172.16.20.32优先级高,keepalived的状态已经由backup升级为master。
ip addr

34服务器启动keepalived进程:
/etc/init.d/keepalived start
/etc/init.d/keepalived status
ps -ef |grep keep
tail -100f /var/log/messages

查看日志为backup 模式
管理用户测试登陆:


查看的UUID为主库32的。

备库keepalived 启动了,并没有VIP。
1.7故障演练
关闭32。
可以看到VIP飘到34服务器上。

且keepalived状态由backup升级为master。

keepalived+双主架构部署的更多相关文章
- 企业Nginx+Keepalived双主架构案例实战
通过上一次课程的学习,我们知道Nginx+keepalived主从配置,始终有一台服务器处于空余状态,那如何更好的利用起来呢,我们需要借助Nginx+keepalived双主架构来实现,如下图通过改装 ...
- keepalived+双主架构
简介 keepalived是基于VRRP协议的,全称 Virtual Redundent Routing Protocal 虚拟路由协议,为解决静态路由单点故障引起的网络失效问题设计的一套主备协议 两 ...
- Nginx+Keepalived双主架构实现
Keepalived+Nginx实现高可用Web负载均衡 Master 192.168.0.69 nginx.keepalived Centos7.4backup 192.168.0.70 nginx ...
- Centos7+nginx+keepalived集群及双主架构案例
目录简介 一.简介 二.部署nginx+keepalived 集群 三.部署nginx+keepalived双主架构 四.高可用之调用辅助脚本进行资源监控,并根据监控的结果状态实现动态调整 一.简介 ...
- keepalived+双主实践HA
工作不怎么忙,搞点儿开发吧差点儿事,就想着弄点儿架构的事儿.正好前段时间看过关于keepalived+双主实现高可用的文章,也恰好身边的朋友所在的公司也部分用这个架构.没什么事儿就搞搞吧,正好对比下M ...
- Mysql+Keepalived双主热备高可用操作记录
我们通常说的双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务.当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短.MySQL双主复制,即互为Mast ...
- MariaDB+Keepalived双主高可用配置MySQL-HA
利用keepalived构建高可用MySQL-HA,保证两台MySQL数据的一致性,然后用keepalived实现虚拟VIP,通过keepalived自带的服务监控功能来实现MySQL故障时自动切换. ...
- MySQL系列详解七:MySQL双主架构演示-技术流ken
前言 在企业中,数据库高可用一直是企业的重中之重,中小企业很多都是使用mysql主从方案,一主多从,读写分离等,但是单主存在单点故障,从库切换成主库需要作改动.因此,如果是双主或者多主,就会增加mys ...
- [转] Haproxy、Keepalived双主高可用负载均衡
http://blog.chinaunix.net/uid-25266990-id-3989321.html 在测试了Nginx+Keepalived的负载均衡后,也对Haproxy+Keepaliv ...
随机推荐
- 杂项-电信:TL9000
ylbtech-杂项-电信:TL9000 TL9000是电信业质量体系要求(书1)与质量体系法则(书2)的指南, 它包括ISO9001的所有要求,以及硬件.软件, 服务方面行业的特别要求. 这些新增要 ...
- Thread.setDaemon设置说明
转载地址:http://blog.csdn.net/m13666368773/article/details/7245570 Thread.setDaemon的用法,经过学习以后了解: 1. setD ...
- 19.QT对话框(文件对话框,颜色对话框,字体框,自定义对话框)
文件对话框 #include<QFileDialog> //文件对话框 void Dialog::on_pushButton_clicked() { //定义显示文件的类型 窗口标题 可供 ...
- Kylin基础教程(一)
一.Kylin介绍 1.1 现状 Hadoop于2006年初步实现,改变了企业级的大数据存储(基于HDFS)和批处理(主要基于MR)问题,10几年过去了,数据量随着互联网的发展井喷式增长,如何高速.低 ...
- 使用BigDecimal完成小数点后的精确位数的四舍五入
package com.ryan; import java.math.BigDecimal; class MyMath { public static double round(double num ...
- C++内存分配方式——小结
1 内存分配方式 内存分配方式有如下三种: 从静态存储区域分配.内存在程序编译的时候就分配好了,这些内存在整个程序运行期间都存在,如全局变量.static变量等等. 在堆栈上分配.在函数执行期间,函数 ...
- codeforces 277 A Learning Languages 【DFS 】
n个人,每个人会一些语言,两个人只要有会一门相同的语言就可以交流,问为了让这n个人都交流,至少还得学多少门语言 先根据n个人之间他们会的语言,建边 再dfs找出有多少个联通块ans,再加ans-1条边 ...
- java真实面试题(1)
2019年春杭州邦盛科技java面试题. 1,java基本类型 byte,char,short,int,long,float,double,boolean. 2,重写重载 重写,子类重写父类的方法,方 ...
- Debian下的内核编译
如果你装了一台linux的机器,自己没有重新编译内核,那这台机器的效率就大打折扣了,因为默认安装的机器会生成许多不需要的东西,在启动的时候也会比较慢,而你要用的有些东西可能不能工作,比如,现在都把IP ...
- D. Destruction of a Tree_dfs序_性质分析_思维题
题意: 给定一棵树,每次可以拆掉一个树上度数为偶数的点,拆掉该点后,与该点所连的所有边都会被删掉.问,是否有一种删点顺序可以删掉所有的点.如果有,则输出任意一组解. 数据范围:线性做法 O(n)O(n ...