当前位置: 首页 > news >正文

mysql双主互从通过KeepAlived虚拟IP实现高可用

mysql双主互从通过KeepAlived虚拟IP实现高可用

在mysql 双主互从的基础上,
架构图:
请添加图片描述
Keepalived有两个主要的功能:

  • 提供虚拟IP,实现双机热备
  • 通过LVS,实现负载均衡

安装

# 安装
yum -y install keepalived 
# 卸载
yum remove keepalived 

修改 keepalived 配置文件

cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.original
vi /etc/keepalived/keepalived.conf

master

keepalived.conf

global_defs {router_id LVS_1script_user root
}vrrp_script check_mysql_port {script "/etc/keepalived/check_mysql_port.sh"    # 脚本存放的位置interval 2     # 每隔两秒运行上一行脚本weight 2
}vrrp_instance VI_1 {# 主机=MASTER;备用机=BACKUPstate MASTER# 该实例绑定的网卡名称interface ens192# 保证主备节点一致virtual_router_id 148# 权重,master值 > backup值priority 100# 主备组播报发送间隔时间1秒advert_int 1# 认证权限密码,防止非法节点进入authentication {auth_type PASSauth_pass 1111}	# 虚拟出来的ip,可以有多个(vip)virtual_ipaddress {178.119.30.13}# 调用监控脚本track_script {check_mysql_port}
}

检测xxx.sh

check_mysql_port.sh

安装killall 命令

# 查询
yum search killall
# 安装对应组件
yum install psmisc -y

安装netstat

yum install -y net-tools
#!/bin/bash
A=`netstat -nltp|grep 3306|wc -l`
if [ $A -eq 2 ];
thenecho "$host mysql login successfully"exit 0
elseecho "mysql login failed"killall keepalivedexit 2
fi

修改脚本xxx.sh权限

chmod 777 check_mysql_port.sh

slave

keepalived.conf

global_defs {router_id LVS_1script_user root
}vrrp_script check_mysql_port {script "/etc/keepalived/check_mysql_port.sh"    # 脚本存放的位置interval 2     # 每隔两秒运行上一行脚本weight 2
}vrrp_instance VI_1 {# 主机=MASTER;备用机=BACKUPstate BACKUP# 该实例绑定的网卡名称interface ens192# 保证主备节点一致virtual_router_id 148# 权重,master值 > backup值priority 80# 主备组播报发送间隔时间1秒advert_int 1# 认证权限密码,防止非法节点进入authentication {auth_type PASSauth_pass 1111}	# 虚拟出来的ip,可以有多个(vip)virtual_ipaddress {178.119.30.13}# 调用监控脚本track_script {check_mysql_port}
}

master VS slave

在这里插入图片描述

结果展示

启动keepalived

  • master

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • slave

在这里插入图片描述

停止容器,使vip飘移

  • master
    在这里插入图片描述
    在这里插入图片描述
  • slave
    在这里插入图片描述
    在这里插入图片描述

systemctl 命令

# 启动 keepalived
systemctl start keepalived  # 加入开机启动 keepalived
systemctl enable keepalived # 重新启动 keepalived
systemctl restart keepalived  # 查看 keepalived 状态
systemctl status keepalived   # 加载配置文件
systemctl daemon-reload

service VS systemctl

在这里插入图片描述

http://www.lryc.cn/news/185373.html

相关文章:

  • ​苹果应用高版本出现:“无法安装此app,因为无法验证其完整性”是怎么回事?竟然是错误的?
  • AF_UNIX和127.0.0.1(AF_INET)回环地址写数据速度对比
  • 我在 NPM 发布了新包: con-colors
  • 【python数据建模】Scipy库
  • C# App.xaml.cs的一些操作
  • 【ORACLE】ORA-00972:标识符过长
  • 【Vue】Vue快速入门、Vue常用指令、Vue的生命周期
  • Pandas 数据处理 类别数据和数值数据
  • Android攻城狮学鸿蒙 -- 点击事件
  • jmeter性能测试常见的一些问题
  • 利用国外 vps 为 switch 设置代理服务器加速游戏下载
  • 云计算安全的新挑战:零信任架构的应用
  • 基于SSM的药房药品采购集中管理系统的设计与实现
  • 【GIT版本控制】--远程仓库
  • 1:Allotment,2:FeeSell,3:混合Allotment+FreeSell
  • NFT Insider#110:The Sandbox与TB Media Global合作,YGG Web3游戏峰会阵容揭晓
  • 在硅云上主机搭建wordpress并使用Astra主题和avada主题
  • 基于SSM+Vue的物流管理系统的设计与实现
  • 【洛谷】P1114 “非常男女”计划
  • list中符合 多条件中筛选符合条件的值
  • Amber中的信息传递——章节1.2-第三部分
  • 【嵌入式】常用串口协议与转换芯片详解
  • 缓存与数据库双写一致性问题解决方案
  • Java中的transient关键字是什么意思?
  • 内存溢出和内存泄漏
  • Java数组:没错,不装了我就是书架。
  • 轻量级接口自动化测试框架
  • .some方法、vh、多列布局、DNS域名解析过程、空页面文字内容渲染
  • Eclipse iceoryx™ - 真正的零拷贝进程间通信
  • 【C++】面向对象编程(二)面向对象的编程思维:virtual虚拟调用、继承、protected成员、派生类与基类