环境拓扑

chengAlived

#!/bin/bash
function checkModelone(){
echo "重新进行获取"
wget 192.168.158.147:3306 -O mysql
echo "获取成功"
echo "进行判断..."
grep "5.7.17" mysql > /dev/null
if [ $? -eq 0 ]; then
echo "mysql正在运行..."
echo "检查keepalived进程是否存在..."
ps aux|grep keepalived |grep -v grep
if [ $? -ne 0 ]
then
echo "keepalived进程丢失"
echo "准备重启keepalived..."
/usr/local/keepalived/sbin/keepalived -f /etc/keepalived/keepalived.conf
echo "重启成功"
else
echo "keepalived 正在运行..."
fi
else
echo "mysql端口异常..."
echo "准备杀除keepalived进程进行漂移"
chengkill keepalived
echo "漂移作业完毕"
fi
} function checkModeltwo(){
checkModelone
}
while [ true ]; do
/bin/sleep 10
if [ -d "mysql" ];then
touch mysql
else
if [ -s ./mysql ]; then
echo "文件不为空"
checkModelone
du -sh mysql
else
echo "文件为空"
checkModeltwo
fi
fi
done

运行规则:nohup ./chengAlived.sh &

说明+:

运行后, 会判断是否存在名字为"mysql"的文件, 否则新建, 把wget后的内容写进这个文件, 通过3306端口使用grep判断mysql版本号, 对keepalived漂移进行管理.

讲解+

第一台机器mysql主机+vip

第二台机器keepalived+lvs

启动脚本

nohup ./chengAlive.sh &

进程

ps aux | grep chengAlive.sh 

[root@localhost test]# ps aux | grep chengAlive.sh
root 16407 0.0 0.1 113128 1412 pts/1 S 15:27 0:00 /bin/bash ./chengAlive.sh
root 16410 0.0 0.1 112676 1008 pts/1 R+ 15:27 0:00 grep --color=auto chengAlive.sh

日志(mysql处于正常开启状态)

模拟宕机

假如mysql挂掉了(这是158.147)

然后keepalived查看脚本日志信息(158.149)

上面,,由于mysql已挂, kill掉keepalived, 实现漂移操作

抢占模拟

如果mysql重新启动(158.147)

再看keepalive(158.149)脚本日志

重新自动启动keepalive.抢占成功.

完毕.

维护keepalived与mysql漂移脚本的更多相关文章

  1. MySQL的keepalived高可用监控脚本

    MySQL的keepalived高可用监控脚本 MySQL(或者其它服务)的keepalived高可用监控脚本 开发脚本需求 :我们知道,keepalive是基于虚拟ip的存活来判断是否抢占maste ...

  2. 基于keepalived搭建MySQL的高可用集群

    MySQL的高可用方案一般有如下几种: keepalived+双主,MHA,MMM,Heartbeat+DRBD,PXC,Galera Cluster 比较常用的是keepalived+双主,MHA和 ...

  3. Keepalived+Lvs+Mysql主主复制

    一简单介绍 Keepalived+lvs+mysql主主复制是比較经常使用的一种Mysql高可用方案,当中lvs 提供读负载均衡,Keepalived通过虚拟vip漂移实现故障自己主动转移,而Mysq ...

  4. 基于keepalived搭建MySQL高可用集群

    MySQL的高可用方案一般有如下几种: keepalived+双主,MHA,MMM,Heartbeat+DRBD,PXC,Galera Cluster 比较常用的是keepalived+双主,MHA和 ...

  5. 基于keepalived搭建MySQL热机集群

    背景 MySQL的高可用方案一般有如下几种: keepalived+双主,MHA,MMM,Heartbeat+DRBD,PXC,Galera Cluster 比较常用的是keepalived+双主,M ...

  6. (转)基于keepalived搭建MySQL的高可用集群

    基于keepalived搭建MySQL的高可用集群  原文:http://www.cnblogs.com/ivictor/p/5522383.html MySQL的高可用方案一般有如下几种: keep ...

  7. Keepalived与MySQL互为主从自动切换配置

    为解决Mysql数据库单点问题,实现两台MySQL数据库互为主备,双向replication.当一Master出现问题,则将Slave切换为Master继续工作. 环境说明 系统版本:CentOS L ...

  8. 基于keepalived搭建mysql双主高可用

    目录 概述 环境准备 keepalived搭建 mysql搭建 mysql双主搭建 mysql双主高可用搭建 概述 传统(不借助中间件)的数据库主从搭建,如果主节点挂掉了,从节点只能读取无法写入,只能 ...

  9. 使用KeepAlived搭建MySQL高可用环境

    使用KeepAlived搭建MySQL的高可用环境.首先搭建MySQL的主从复制在Master开启binlog,创建复制帐号,然后在Slave输入命令   2016年7月25日   配置安装技巧:   ...

随机推荐

  1. iOS 新浪微博-2.0 搜索框/标题带箭头/下拉菜单

    不管是搜索框还是下拉菜单,我们都需要对背景的图片进行拉伸.定义一个Category分类对图片进行操作. UIImage+Effect.h #import <UIKit/UIKit.h> @ ...

  2. webpack使用五

    一切皆模块 Webpack有一个不可不说的优点,它把所有的文件都都当做模块处理,JavaScript代码,CSS和fonts以及图片等等通过合适的loader都可以被处理. CSS webpack提供 ...

  3. summaryなな

    Word如果遇到有空白页不能删除的情况,将光标定位在空白页前一页的末尾,然后按Delete键就可以删除空白页了. 实时计算,强调的是实时.比如小明要查看他去年一年的消费总额度,那么当小明点下统计按钮的 ...

  4. InstallShield2015制作安装包----------卸载后删除安装目录和文件

    卸载程序后,一般是需要将安装目录清除干净.但是,如果程序运行中有文件生成,这时InstallShield自带的卸载程序,不会卸载这些运行时生成的文件. 卸载不干净,可能会对下次程序的安装,和安装后的运 ...

  5. Mongodb $in $or 性能比较

      MongoDB docs have the answer: "When using $or with <expressions> that are equality chec ...

  6. 记工作中用到的抓取oracle表结构的sql语句

    以下是SQL,生成的结果中是否为主键和是否可为空,是不准确的 ,没有关联相关的系统表: select '' as 业务源系统, t2.TABLE_NAME 表名称, nvl(t3.comments,' ...

  7. [ Windows BAT Script ] BAT 脚本获取windows权限

    BAT 脚本获取windows权限 @echo off echo I am trying to run as Administrator %1 %2 ver|find "5."&g ...

  8. Beta冲刺阶段5.0

    1. 提供当天站立式会议照片一张 2. 每个人的工作 (有work item 的ID) 成员 昨天已完成的工作 今天计划完成的工作 工作中遇到的困难 具体贡献 郑晓丽 首页活动详情界面的美化 实现首页 ...

  9. 面向对象的多态性(C++)

    以C++为例三大特效:封装.继承.多态,面向对象的编程语言都具有这些特性. 那么本节来谈谈多态性,尽量说的简单些容易理解! 多态什么意思?即运行时多态,以相同的方式处理不同类型的对象,产生不同的结果! ...

  10. codeforces 980A Links and Pearls

    题意: 有珍珠和线,问能否重新安排使得相邻珍珠之间的线的数量相等. 思路: 首先,珍珠为0或者线为0,那么都满足条件: 其次,如果珍珠的个数大于线的个数,那么肯定不满足条件: 然后,如果线的个数能够被 ...