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

我们来学mysql -- keepalive主从高可用

keepalive主从高可用

  • 简明扼要
  • 安装KP
  • 场景
  • “高可用”配置
    • 主keepalived.conf
    • 从keepalived.conf
    • mysql_check.sh
  • 高可用验证
    • KP运行情况
    • 通过vip连接mysql
    • vip连接上创建数据库
    • 关闭主库所在服务器的KP
    • vip连接上再次创建数据库
  • 结尾

简明扼要

  • 搭建mysql的主从
  • 八股文如是:主用来写,从作为读(大量报表业务或其他读较多的需求)
    • 实际业务中,从顶多就是个备份
    • 至少binlog被破坏,数据在从还有一份
  • 或许正是源于此种解释,客户认为我认为的不是他认为的
  • 便有了这样的需求
    • 主节点下线,数据服务要能切换到从
  • 呵呵,那便有了keepalive,便会造成两种情况
    • 主恢复了后,主从关系易位
      • 涉及将从的数据恢复到主(此时做了些业务,从的数据多余主)
      • 修改my.cnf配置,调整主从
    • 保持之前主从关系
      • 从的数据恢复到主(此时做了些业务,从的数据多余主)
      • 开启主从
  • 友情提示
    • 本篇只是验证数据服务的切换,上述的两种情况不做记录
    • 本篇通过主数据服务的下线,关闭KP,实现切换

安装KP

  • 参考

场景

  • 两台服务器,都安装了KP
  • 两台服务器,做了mysql主从
  • 主mysql下线,从mysql提供数据服务

“高可用”配置

主keepalived.conf

  • 配置 authentication 两个节点一样
  • 配置virtual_ipaddress 未被占用的IP
  • 配置 interface 实际的网卡
  • 配置 virtual_router_id 虚拟路由id,双节点需要一致
  • 配置 priority 优先级,以优先级为主,state 没啥意义
  • 配置 vrrp_script 检测脚本
! Configuration File for keepalivedglobal_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 192.168.200.1smtp_connect_timeout 30router_id LVS_DEVELvrrp_skip_check_adv_addrvrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0
}vrrp_script mysql_check {  # 健康检查脚本,通过命令判断MySQL的状态值,如果状态值不为零,则MySQL异常,停止keepalived服务,VIP将飘逸到另一台backup上面。script "/u01/soft/oracle/script/mysql_check.sh" # 脚本别忘了加上可执行权限。interval 2 # 没2秒检查一次# weight -30 # 检查失败,优先级减30
}vrrp_instance VI_1 {state MASTERinterface ens192 # 实际网卡名称virtual_router_id 51 # 虚拟路由id,双节点需要一致priority 100 # 主节点优先级advert_int 1# 认证密码,双节点需一致authentication {auth_type PASSauth_pass 1111}track_script {	mysql_check        # 使用vrrp_script定义的名称}virtual_ipaddress {10.2.0.200}# Allow packets addressed to the VIPs above to be receivedaccept
}

从keepalived.conf

  • 除了优先级,其他都一样
  • 当然,网卡要配置当前服务器的
  • 没有数据库检测的脚本
! Configuration File for keepalivedglobal_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 192.168.200.1smtp_connect_timeout 30router_id LVS_DEVELvrrp_skip_check_adv_addrvrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0
}vrrp_instance VI_1 {state MASTERinterface ens192 # 实际网卡名称virtual_router_id 51 # 虚拟路由id,双节点需要一致priority 90 # 节点优先级advert_int 1# 认证密码,双节点需一致authentication {auth_type PASSauth_pass 1111}track_script {	}virtual_ipaddress {10.2.0.200}# Allow packets addressed to the VIPs above to be receivedaccept
}

mysql_check.sh

  • 检查不到数据库服务,关闭KP
#!/bin/bashss -tnl |grep 3308
i=$?ps -ef | grep mysqld |grep -v color |grep -v "grep mysqld"
j=$?mysql -uroot -proot@000 -e "select version();"
k=$?if [ $i -ne 0 -a $j -ne 0 -a $k -ne 0 ];then
# 通过命令判断MySQL的状态值,如果状态值不为零,则MySQL异常,停止keepalived服务,VIP将飘逸到另一台backup上面。systemctl stop keepalivedexit 1
elseexit 0
fi

高可用验证

KP运行情况

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

通过vip连接mysql

在这里插入图片描述

vip连接上创建数据库

在这里插入图片描述

关闭主库所在服务器的KP

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

vip连接上再次创建数据库

在这里插入图片描述

结尾

  • 给个赞呦!!!
    在这里插入图片描述
    在这里插入图片描述

相关文章:

  • YOLOv1 技术详解:目标检测的实时革命
  • 为何AI推理正推动云计算从集中式向分布式转型
  • React Native UI 框架与动画系统:打造专业移动应用界面
  • 网络请求与本地存储:Axios 与 AsyncStorage 在 React Native 中的应用
  • 深入偏微分方程的世界-AI云计算
  • 开源 java android app 开发(十二)封库.aar
  • 基于React Native的HarmonyOS 5.0休闲娱乐类应用开发
  • Android的Dalvik和ART
  • 【DETR目标检测】ISTD-DETR:一种基于DETR与超分辨率技术的红外小目标检测深度学习算法
  • 修仙处于平凡
  • 华为服务器obsutil使用方法
  • 计算机网络:认证和授权 DNS 域名解析过程(如何转换为ip地址) http无状态 5**服务端错误相关的响应状态码 tcp某次握手丢失会有什么现象?
  • WPP 媒体推出基于人工智能的工具突破基于身份识别的定向模式
  • 摄影入门:相机基本参数解析
  • SpringBoot学习day2-前后端的交互搭建以及跨域问题、拦截过滤器问题的解决
  • FEMFAT许可使用数据分析工具介绍
  • Jetson NX 从nvme恢复的emmc启动的方法
  • 华为交换机远程登录配置
  • 从C学C++(2)
  • uni-app项目实战笔记1--创建项目和实现首页轮播图功能
  • 泰兴做网站的公司/百度数据库
  • 常熟网站开发/关键词优化报价推荐
  • 用什么做网站后台/站长之家论坛
  • 百度一下做网站/百度网址输入
  • 草桥有做网站公司吗/青岛网站推广公司排名
  • 网站价值评估怎么做/网络营销案例100例