基于Keepalvied的Mysql主主漂移(切换)
Keepalived实现原理:Keepalived详细介绍简介
实验环境
Master1、Amoeba--IP:192.168.1.5
Master2---IP:192.168.1.10
同时安装keepalived
依赖包
[root@dep5 keepalived-1.1.20]# yum install openssl-devel popt-devel -y
make clean&& make clean all
tar -xvf keepalived-1.1..tar.gz && cd keepalived-1.1. && ./configure --prefix=/usr/local/keepalived && make && make install && cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/ && cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ && mkdir /etc/keepalived && cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/ && cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
#############必须给检查文件给执行权限
chmod /etc/keepalived/manage_mysql/ -x -R
双主都需要设置用户
grant all on *.* to keepalived@'%' identified by 'keepalived';
双主都需要安装keepalived并且配置
keepalived配置文件
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout
router_id MYSQLHA_DEVEL
} vrrp_script check_mysqld {
script "/etc/keepalived/mysqlcheck/check_mysql.sh" #检查MYSQL 复制状态脚本
interval
weight
} vrrp_instance VI_1 {
state BACKUP #这里主201和主202都写上BACKUP
interface eth0 #vip对外的网络接口
virtual_router_id #标识号。。主主要统一起来
priority #优先级。主202上改成90
advert_int
# nopreempt #不抢占模式。在优先级高的那台设置此参数,一般在主上设置,主的优先级高 authentication {
auth_type PASS
auth_pass
} track_script {
check_mysqld #调用MYSQL脚本的函数
} virtual_ipaddress {
192.168.5.10/
}
}
检查Mysql状态脚本
#!/bin/bash
#Totle:check_mysql
#Description:Check mysql status
#system:Use Linux
#======================================
#Set mysql host
#每个机器改成自己的IP地址和远程授权的用户
Host_S=192.168.1.5
User_S=keepalived
Pwss_S=keepalived
Port_S=3306
#======================================
#Function-->Check_mysql_IO
#=====================================
Check_mysql_IO()
{ Check_IO=`mysql -u$User_S -p$Pwss_S -h $Host_S -P $Port_S -e "show slave status\G" | grep "Runnin" | sed 's/ //g' | grep "IO" | awk -F: '{print $NF}' | grep "Yes" | wc -l` Check_SQL=`mysql -u$User_S -p$Pwss_S -h $Host_S -P $Port_S -e "show slave status\G" | grep "Runnin" | sed 's/ //g' | grep "SQL" | awk -F: '{print $NF}' | grep "Yes" | wc -l` if [ $Check_IO -ne 1 -o $Check_SQL -ne 1 ]
then
/etc/init.d/keepalived stop
return 1
else
Check_PID=`/etc/init.d/keepalived status | grep "pid" | wc -l`
if [ $Check_PID -eq 1 ]
then
echo "OK"
exit 0
else
/etc/init.d/keepalived start
if [ $? -eq 0 ]
then
echo "keepalived start ok" >/tmp/checkmysql.log
exit 0
else
echo "keepalived start fail..">/tmp/checkmysql.log
return 1
fi
fi
fi
} #======================================
#Function-->Main
#=====================================
Main()
{ Check_mysql_IO
if [ $? -eq 1 ]
then
echo "Mysql $Host_S IO or SQL error" | mail -s "Mysql IO error" 50738846@qq.com
exit 1
fi }
Main;
基于Keepalvied的Mysql主主漂移(切换)的更多相关文章
- 基于keepalived搭建mysql双主高可用
目录 概述 环境准备 keepalived搭建 mysql搭建 mysql双主搭建 mysql双主高可用搭建 概述 传统(不借助中间件)的数据库主从搭建,如果主节点挂掉了,从节点只能读取无法写入,只能 ...
- 8.2 k8s 基于StatefulSet运行mysql 一主多从 ,数据通过pv/pvc结合NFS服务器持久化
1.准备mysql和xtrabackup镜像 下载mysql官方镜像并上传到本地harbor docker pull mysql:5.7 docker tag m ysql:5.7 192.168.1 ...
- 配置percona mysql server 5.7基于gtid主主复制架构
配置mysql基于gtid主主复制架构 环境: 操作系统 centos7. x86_64 mysql版本:Percona-Server-- 测试环境: node1 10.11.0.210 node2 ...
- mycat 1.6.6.1安装以及配置docker 安装mysql 5.7.24 双主多从读写分离主主切换
mycat和mysql的高可用参考如下两个图 简介:应用程序仅需要连接HAproxy或者mycat,后端服务器的读写分离由mycat进行控制,后端服务器数据的同步由MySQL主从同步进行控制. 服务器 ...
- 基于uReplicator复制的kafka主备集群间的切换策略
一.概述 目前基于中间件uReplicator实现了kafka集群间的迁移复制,可以实现跨区.跨云的kafka集群间复制同步,也可以实现kafka集群的冷热互备架构:在实现集群间同步以后,需要解决一个 ...
- MySQL一主二从复制环境切换主从库
假设有一个一主二从的环境,当主库M出现故障时,需要将其中一个从库S1切换为主库,同时将S2指向新的主库S1,如果可能,需要将故障的主库M修复并重置为新的从库. 搭建一主二从复制环境可参考:mysql5 ...
- 一个月后,我们又从 MySQL 双主切换成了主 - 从!
这是悟空的第 157 篇原创文章 官网:www.passjava.cn 你好,我是悟空. 一.遇到的坑 一个月前,我们在测试环境部署了一套 MySQL 高可用架构,也就是 MySQL 双主 + Kee ...
- 基于zookeeper的MySQL主主负载均衡的简单实现
1.先上原理图 2.说明 两个mysql采用主主同步的方式进行部署. 在安装mysql的服务器上安装客户端(目前是这么做,以后想在zookeeper扩展集成),客户端实时监控mysql应用的可用性,可 ...
- Mysql双主热备+LVS+Keepalived高可用操作记录
MySQL复制能够保证数据的冗余的同时可以做读写分离来分担系统压力,如果是主主复制还可以很好的避免主节点的单点故障.然而MySQL主主复制存在一些问题无法满足我们的实际需要:未提供统一访问入口来实现负 ...
随机推荐
- 使用Core Animation对象来实现动画
转载保留原文地址:http://blog.csdn.net/kqjob/article/details/10417461,转载的 在iOS中如果使用普通的动画则可以使用UIKit提供的动画方式来实现, ...
- mysql 货币字段类型的存储
loat类型是可以存浮点数(即小数类型),但是float有个坏处,当你给定的数据是整数的时候,那么它就以整数给你处理.这样我们在存取货币值的时候自然遇到问题,我的default值为:0.00而实际存储 ...
- 默认系统为UEFI启动的GPT分区的WIN7(8),如何安装VHD的UEFI WIN8(7)
默认系统为UEFI启动的GPT分区的WIN7(8),如何安装VHD的UEFI WIN8(7) 情况A:如果默认系统为UEFI启动.GPT分区的WIN7,想安装个VHD的UEFI WIN8.1 1:系统 ...
- javascript 总结学习一
1 , javascript字符集:javascript采用的是Unicode字符集编码.为什么要采用这个编码呢?原因很简单,16位的Unicode编码可以表示地球人的任何书面语言.这是语言 国际化的 ...
- $.ajax和$.post的区别(前者根据key-value/后者根据形参)
post不需要给key-value形式: $("#btn").click(function(){ var url=basePath+"/emp/login"; ...
- What is “Mock You” :Raise,callback,verify [转载]
http://www.cnblogs.com/wJiang/archive/2010/02/21/1670637.html Raise 如果你说会用Setup,那么Raise就更简单了.这里注意下它是 ...
- Xcode如何简单安装Alcatraz
1.最简单直接,直接到github获取该项目 地址:www.github.com,搜索Alcatraz: 2.通过Xcode打开该项目,编译success后,退出Xcode,再启动,再弹出框选择loa ...
- javascript中的正则匹配函数exec(),test(),match()
test() var str = "cat";var reStr = /cat/;alert(reStr.test(str)); 输出为:true 它的返回值为true or fa ...
- hudson--ant编写记录
最近配置Hudson---持续集成工具,重点是ant的编写. 环境:Ubuntu 虚拟机 hudson系统设置里面jdk ant路径也是Ubuntu里文件路径如:/home/test/java/ant ...
- 在IE6里面当元素浮动后再设置margin那么就会产生双倍边距
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...