主主漂移(切换)

同时安装keepalived

依赖包
[[email protected] keepalived-1.1.20]# yum install openssl-devel popt-devel -y
make clean&& make clean all

tar -xvf keepalived-1.1.20.tar.gz && cd keepalived-1.1.20 && ./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 [email protected]‘%‘ identified by ‘keepalived‘;

双主都需要安装keepalived并且配置
keepalived配置文件

! Configuration File for keepalived
global_defs {
   notification_email {
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id MYSQLHA_DEVEL
}

vrrp_script check_mysqld {
    script "/etc/keepalived/mysqlcheck/check_mysql.sh"  #检查MYSQL 复制状态脚本
    interval 2
    weight 2
}

vrrp_instance VI_1 {
    state BACKUP  #这里主201和主202都写上BACKUP
    interface eth0  #vip对外的网络接口
    virtual_router_id 66 #标识号。。主主要统一起来
    priority 100   #优先级。主202上改成90
    advert_int 2
#    nopreempt   #不抢占模式。在优先级高的那台设置此参数,一般在主上设置,主的优先级高

    authentication {
        auth_type PASS
        auth_pass 1111
    }

      track_script {
          check_mysqld  #调用MYSQL脚本的函数
    }

    virtual_ipaddress {
        192.168.5.10/24
    }
}

检查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" [email protected]
        exit 1
    fi

}
Main;
时间: 2024-08-25 14:49:35

主主漂移(切换)的相关文章

Redis主备自动切换

Sentinel(哨兵)是用于监控redis集群中Master状态的工具. 一.Sentinel作用  1.Master状态检测   2.如果Master异常,则会进行Master-Slave切换,将其中一个Slave作为Master,将之前的Master作为Slave;  3.Master-Slave切换后,master_redis.conf.slave_redis.conf和sentinel.conf的内容都会发生改变,即master_redis.conf中会多一行slaveof的配置,se

思科核心交换主备引擎切换与测试

某省级大型国企业,某项目涉及到引擎切换测试.做了些记录还有心得与大家共享.注:现场实际环境 1,设备硬件 Cisco WS-C6509-E Component name Description 板卡1 WS-X6724-SFP 24 port 1000mb SFP 板卡2 WS-X6748-GE-TX 48 port 10/100/1000mb Ethernet 板卡1 WS-X4648-GE-TX 48 port 10/100/1000mb Ethernet 引擎1 WS-SUP720-3B

keepalived实现对mysql主从复制的主备自动切换

备注:君子性非议也,善假于物也. 温故而知新,可以为师矣. 使用MySQL+keepalived是一种非常好的解决方案,在MySQL-HA环境中,MySQL互为主从关系,这样就保证了两台 MySQL数据的一致性,然后用keepalived实现虚拟IP,通过keepalived自带的服务监控功能来实现MySQL故障时自动切换. 实验环境中用两台主机搭建了一个mysql主从复制的环境,两台机器分别安装了keepalived,用一个虚IP实现mysql服务器的主备自动切换功能. 模拟环境: VIP:1

Haproxy+Keepalived高可用环境部署梳理(主主和主从模式)

Nginx.LVS.HAProxy 是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,通常会结合Keepalive做健康检查,实现故障转移的高可用功能. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59

inotify+rsync+mysql主主复制+keepalived实现zabbix高可用

思路:主备机通过inotify+rsync实现文件同步,通过mysql主主复制实现数据同步,同一时刻只有一台服务器能对外提供zabbix服务,web端登陆虚ip访问,被监控主机通过配置虚ip来完成监控. 配置: 主机 ip 操作系统 zabbix版本 mysql版本 inotify版本 rsync版本 备注 zabbix-server01 172.27.9.80 Centos7.3.1611 zabbix_server (Zabbix) 3.4.10 5.7.22 3.14 3.1.2 关闭防火

干货,memcached+keepalived实现主主复制和高可用,详解!

keepalived+memcached主主复制高可用介绍: 客户端连接两台服务器之间的VIP地址,如果后端服务器故障自动切换. Keepalive原理: 1.故障检测: Keepalived的作用是检测memcached服务器的状态是否正常. 2.主从切换: Keepalived如果检测到memcached服务发生DOWN机或者死机等,能将VIP从主服务器移至从服务器 3.Keepalived如何发现memcached异常: 1) keepalived在memcached主服务器产生一个虚拟I

MM(主主数据库)+keepalived主备高可用集群

博客分享的第一篇技术文章: 项目主要搭建:主主数据库高可用集群搭建. 数据库互为主备,应用技术:MM+keepalived 使用的是虚拟机搭建的实验向大家展示: 数据库1:192.168.4.7 数据库2:192.168.4.77 VIP:192.168.4.68 web1:192.168.4.69 web2:192.168.4.70 一.安装mysql,部署主主同步结构. 直接yum安装 配置主主同步: 由于主数据库192.168.4.7里面存放着数据,所以需要先导出数据,方法很多,我们采取m

MySQL双主(主主)架构方案

在企业中,数据库高可用一直是企业的重中之重,中小企业很多都是使用mysql主从方案,一主多从,读写分离等,但是单主存在单点故障,从库切换成主库需要作改动.因此,如果是双主或者多主,就会增加mysql入口,增加高可用.不过多主需要考虑自增长ID问题,这个需要特别设置配置文件,比如双主,可以使用奇偶,总之,主之间设置自增长ID相互不冲突就能完美解决自增长ID冲突问题. 主从同步复制原理 在开始之前,我们先来了解主从同步复制原理. 复制分成三步: 1. master将改变记录到二进制日志(binary

趁一切还来得及【六】数据库MySQL读写分离与主主同步

相思相见知何日?此时此夜难为情.                                                      --[唐]李白 第一章 数据库MySQL主从复制读写分离授权 1.1 主从复制读写分离方案简单分析 ①数据库主从复制搭建之后,因为数据是单向的,因此默认规则就是所有的数据(主从相关收据)写入和更新都在主库上进行操作,避免主从同步的时候造成冲突. ②严格上来讲,从库上的非同步的库写入数据,只要和主库没有关系,也是可以写入的(或者作为主库),但是如果主从都想其中

MySQL 主主复制 + LVS + Keepalived 实现 MySQL 高可用性

MySQL复制能够保证数据的冗余的同时可以做读写分离来分担系统压力,如果是主主复制还可以很好的避免主节点的单点故障.但是MySQL主主复制存在一些问题无法满足我们的实际需要:未提供统一访问入口来实现负载均衡,如果其中master宕掉的话需要手动切换到另外一个master,而不能自动进行切换. 这篇文章下面要介绍如何通过LVS+Keepalived的方式来是实现MySQL的高可用性,同时解决以上问题. Keepalived和LVS介绍 Keepalived是一个基于VRRP(虚拟路由冗余协议)可用