在高可用集群环境中,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

下载地址:

http://rpmfind.net/linux/rpm2html/search.php?query=keepalived&submit=%E6%90%9C%E7%B4%A2...+&system=&arch=

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+双主架构部署的更多相关文章

  1. 企业Nginx+Keepalived双主架构案例实战

    通过上一次课程的学习,我们知道Nginx+keepalived主从配置,始终有一台服务器处于空余状态,那如何更好的利用起来呢,我们需要借助Nginx+keepalived双主架构来实现,如下图通过改装 ...

  2. keepalived+双主架构

    简介 keepalived是基于VRRP协议的,全称 Virtual Redundent Routing Protocal 虚拟路由协议,为解决静态路由单点故障引起的网络失效问题设计的一套主备协议 两 ...

  3. Nginx+Keepalived双主架构实现

    Keepalived+Nginx实现高可用Web负载均衡 Master 192.168.0.69 nginx.keepalived Centos7.4backup 192.168.0.70 nginx ...

  4. Centos7+nginx+keepalived集群及双主架构案例

    目录简介 一.简介 二.部署nginx+keepalived 集群 三.部署nginx+keepalived双主架构 四.高可用之调用辅助脚本进行资源监控,并根据监控的结果状态实现动态调整 一.简介 ...

  5. keepalived+双主实践HA

    工作不怎么忙,搞点儿开发吧差点儿事,就想着弄点儿架构的事儿.正好前段时间看过关于keepalived+双主实现高可用的文章,也恰好身边的朋友所在的公司也部分用这个架构.没什么事儿就搞搞吧,正好对比下M ...

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

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

  7. MariaDB+Keepalived双主高可用配置MySQL-HA

    利用keepalived构建高可用MySQL-HA,保证两台MySQL数据的一致性,然后用keepalived实现虚拟VIP,通过keepalived自带的服务监控功能来实现MySQL故障时自动切换. ...

  8. MySQL系列详解七:MySQL双主架构演示-技术流ken

    前言 在企业中,数据库高可用一直是企业的重中之重,中小企业很多都是使用mysql主从方案,一主多从,读写分离等,但是单主存在单点故障,从库切换成主库需要作改动.因此,如果是双主或者多主,就会增加mys ...

  9. [转] Haproxy、Keepalived双主高可用负载均衡

    http://blog.chinaunix.net/uid-25266990-id-3989321.html 在测试了Nginx+Keepalived的负载均衡后,也对Haproxy+Keepaliv ...

随机推荐

  1. php后期静态绑定

    php后期静态绑定 自 PHP 5.3.0 起,PHP 增加了一个叫做后期静态绑定的功能,用于在继承范围内引用静态调用的类. 虽然也可以调用非静态方法,但是不会在运行时绑定. static 不再只是简 ...

  2. 捣鼓TinyMCE 粘贴图片并上传+Django后台

    前面一篇写了上传到Flask后台,但是我不熟悉Flask,原先想学习一下,据说是轻量级. 但是我发现,学习会浪费我大量的时间,因为我并不是以这个为生的,我的目标只是要完成功能,让我自己能尽早使用起来, ...

  3. c++面向对象程序设计 谭浩强 第五章答案

    1: #include <iostream> using namespace std; class Student {public: void get_value() {cin>&g ...

  4. 基于nginx的最基础的TCP代理,经过测试可通!

    测试操作系统为win7,nginx版本为1.9.4. 在本机上编写java程序一个socket服务类SocketServer,监听端口为8889, (增加了一个SocketServerThread线程 ...

  5. 【AnjularJS系列4 】 — 单个页面加载多个ng-App

    第四篇,插播, 单个页面加载多个ng-App 在写范例的时候发现的问题 一个页面有多个ng-app,angular只会处理第一个ng-app 需要加载两个ng-app,需要进行手动加载: angula ...

  6. Guitar Pro 的双十一特惠活动,正在如火如荼进行中...

    11月11日这个令人兴奋的日子又来了.没错,“双十一”所有网购达人狂欢的日子.同时期待已久的Guitar Pro 也将在“双十一”当天,把福利分享与你我.11月11日Guitar Pro 将在麦软商城 ...

  7. ZBrush中Magnify膨胀笔刷介绍

    Magnify膨胀笔刷是ZBrush®笔刷中经常使用的,利用该笔刷可绘制中心向四周膨胀的效果.本文内容向大家介绍ZBrush®中膨胀笔刷以便大家熟悉它的用法和特性. Magnify膨胀笔刷 Magni ...

  8. LeetCode Golang 4. 寻找两个有序数组的中位数

    4. 寻找两个有序数组的中位数 很明显我偷了懒, 没有给出正确的算法,因为官方的解法需要时间仔细看一下... func findMedianSortedArrays(nums1 []int, nums ...

  9. windows下Word使用-快捷键

    1.word全屏显示——Alt+U+V 2.上标——Ctrl+Shift+= 3.下标——Ctrl+=

  10. BZOJ 2150 部落战争 (二分图匹配)

    题目大意:给你一个n*m的棋盘,有一些坏点不能走,你有很多军队,每支军队可以像象棋里的马一样移动,不过马是1*2移动的,而军队是r*c移动的,军队只能从上往下移动,如果一个点已经被一直军队经过,那么其 ...