之前写过一篇mysql8.0搭建MGR 在这里 mysql8.0配置MGR - 悠游~~~ - 博客园 (cnblogs.com)

在此基础上配置keepalived

一、安装keepalived (可能会少些包,所以配置了网络yum源)      所有节点均需安装

配置yum源(我这里使用了oracle的)

[root@mgr1 run]# cat /etc/yum.repos.d/oracle.repo
[oracle]
name=oracle
baseurl=http://yum.oracle.com/repo/OracleLinux/OL8/baseos/latest/x86_64
enabled=1
gpgcheck=0

二、配置keepalived

修改默认配置文件(每个节点都需要)

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

#指定mysql服务检测脚本
vrrp_script chk_mysql {
script "/root/chk_mysql.sh" #脚本路径
interval 2 #脚本检测频率
weight -5 #脚本执行返回值 =0 ,优先级不变。 !=0 时优先级 -5
fall 2 #如果连续两次检测失败,认为节点服务不可用
rise 1 #如果连续2次检查成功则认为节点正常
}
#监测mysql 是否是master
vrrp_script chk_mysql_master {
script "/root/chk_mysql_master.sh"
interval 2
weight 10 #脚本执行返回值 =0 ,优先级加 10。 !=0 时优先级不变。
}

vrrp_instance VI_1 {
state MASTER #指定实例初始状态,实际的MASTER和BACKUP是选举决定的。
interface ens160 #指定实例绑定的网卡
virtual_router_id 88 #设置VRID标记(0..255)
priority 96 #设置优先级,优先级高的会被竞选为Master
advert_int 1 #检查的时间间隔,默认1s
authentication { #节点间的认证,所有的必须一致
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { #设置VIP,可以设置多个,用于切换时的地址绑定。
192.168.220.100/24
}

track_script { #指定前面脚本的名字
chk_mysql
chk_mysql_master
}
}
global_defs { #全局配置
router_id k8s #组名,同集群一致
script_user root #执行脚本的用户
enable_script_security

}

====三个节点中只有priority参数大小不同,用来配置初始权重
mgr1 priority 100
mgr2 priority 98
mgr3 priority 96

上边的配置主要是由keepalived定时调用chk_mysql和chk_mysql_master这两个脚本来检查mysql的运行状态并根据检查情况来改变各个节点的权重,以此决定vip应该飘在哪个节点上

两个检查脚本需要自己写(见下方)

有关于权重的说明:{

这三个值不要相差太大,最好自己模拟一下算一下,看各种情况下是否是按照自己的预期得到权重;如果相差太大,weight值也比较小的时候,可能会导致备机的权重比主机的大

当通过chk_mysql.sh脚本检测mysql服务是否存在,如果执行了改变权重
通过/root/chk_mysql_master.sh脚本检测本机是否是master机,是的话,改变权重

整体来说就是通过改变机器的权重来把VIP飘在权重最大的机器上的;我们要做的就是通过脚本判断是否执行,使得master的权重最高;这里的权限一定得控制好;
权重策略是:
当weight > 0时:脚本执行成功了 Priority+Weight 执行失败 Priority
当weight < 0时:脚本执行成功了 Priority 执行失败 Priority+Weight

每执行一次他的权重是重新开大会算的,并不是接着上一次的来   }

====mysql检查脚本

vim /root/chk_mysql.sh

=== 检查mysql 服务脚本
#!/bin/bash
counter=`netstat -tulnp |grep -w :::3306 |wc -l`
if [ $counter -eq 0 ]; then
systemctl stop keepalived
fi

vim /root/chk_mysql_master.sh

=== 检查mysql master 脚本(使用uuid判断是否为master节点)
#!/bin/bash

priuuid=`/usr/local/mysql8.0/bin/mysql -uroot -S /mysql/data_mgr_8.0/mysql.sock -e "SELECT * FROM performance_schema.replication_group_members WHERE MEMBER_ID = (SELECT VARIABLE_VALUE FROM performance_schema.global_status WHERE VARIABLE_NAME= 'group_replication_primary_member')" |awk 'NR==2{print}'|awk -F" " '{print $2}'`

uuid=`/usr/local/mysql8.0/bin/mysql -uroot -S /mysql/data_mgr_8.0/mysql.sock -e "select @@global.server_uuid" |awk 'NR==2{print}'`

if [ $priuuid == $uuid ]; then
exit 0
else
exit 1
fi

====赋予脚本执行权限

chmod +x chk_mysql*

三、启动keepalived
[root@mgr1 keepalived]# systemctl start keepalived.service
[root@mgr1 keepalived]# systemctl enable keepalived.service

keepalived的日志默认在/var/log/messages下

四、验证高可用配置

==检查mgr状态 当前主节点为节点2 192.168.220.132

SELECT * FROM performance_schema.replication_group_members;

===检查节点2 keepalived状态和vip状态

vip在节点2成功启动

===从其他节点测试连接vip

从节点3连接vip登录到节点2上(uuid对应)

===节点2主库宕机测试

--节点2日志keepalived自动关闭并移除VIP

===检查当前mgr状况

节点1成为主库

====节点1日志VIP漂移并且提升权重

===测试连接数据库VIP

--在节点3连接VIP成功连接到primary库(节点1)

转载至mysql MGR配置keepalived - 悠游~~~ - 博客园

mysql MGR配置keepalived相关推荐

  1. mysql mgr 配置_MySQL5.7 MGR安装配置

    MySQL5.7 MGR安装配置 一.服务器规划 mysql_mgr_01192.168.10.223 mysql_mgr_02192.168.10.224 mysql_mgr_03192.168.1 ...

  2. mysql 主从 keepalived_一次mysql主从加keepalived配置搭建及切换演示

    [需求] 根据需求需要搭建mysql主从架构数据库及加keepalived进行自动切换VIP(没有使用脚本进行检查对端数据库及互换主从) [环境介绍] 系统环境:CentOS release 6.4 ...

  3. mysql主主备份_MySQL主从备份和主主备份配置+Keepalived+MySQL读写分离

    一.MySQL主从备份 为保证数据库的安全和效率,可以使用主从备份,当有写的操作可以在主服务器上操作,操作完之后备份到从服务器上,当有读操作时可以访问从服务器,这样在一定程度上保证了数据库的安全,当主 ...

  4. mysql备份-a是什么_MySQL主从备份和主主备份配置+Keepalived+MySQL读写分离

    一.MYSQL主从备份 为保证数据库的安全和效率,可以使用主从备份,当有写的操作可以在主服务器上操作,操作完之后备份到从服务器上,当有读操作时可以访问从服务器,这样在一定程度上保证了数据库的安全,当主 ...

  5. MySQL + MGR学习培训计划

    MySQL培训简介 一.课程简介与目标 通过本次培训,可以系统的掌握MySQL的重要知识点,通过讲义点拨和经验/案例分享,快速提高实战水平: 每个专题结束后,会有相应的实验进行实践. 二.讲师:目前任 ...

  6. mysql 主主+ Keepalived 高可用

    这是在mysql互为主从的基础上做的 yum -y install keepalived    #两台机器上都装 配置Keepalived主从, vrrp_instance VI_1 { state ...

  7. mysql mgr简介_MySQL Group Replication(MGR)使用简介与注意事项

    MySQL Group Replication(MGR)是MySQL官方在5.7.17版本引进的一个数据库高可用与高扩展的解决方案,以插件形式提供.MGR基于分布式paxos协议,实现组复制,保证数据 ...

  8. mysql主从复制 lvs+ keepalived

    2019独角兽企业重金招聘Python工程师标准>>> 一.环境 Master(主机A):192.168.1.1 Slave(主机B) :192.168.1.2   W-VIP(写入 ...

  9. MySQL主主+Keepalived高可用(一):解决单点故障

    在企业中,一般系统架构的瓶颈会出现在数据库这一部分,Mysql主从架构在很大程度上解决了这部分瓶颈,但是在Mysql主从同步的架构也存在很多问题.比如: 1. 关于数据写入部分(也就是主库)往往很难做 ...

最新文章

  1. 青蛙跳台阶c语言递归函数,青蛙跳台阶问题的四种解法
  2. $.ajax上传文件或者上传图片
  3. SQL SERVER2008 镜像
  4. 模拟线程切换 C++
  5. C可变参数详解及其函数设计
  6. Git删除不存在对应远程分支的本地分支
  7. 希尔排序+移位法(吊打交换法)
  8. echart中拆线点的偏移_Real BIM | Rhino+Grasshopper在双曲异形玻璃幕墙中的应用
  9. 软件工程汇编程序设计——分支程序实验,循环程序实验,综合程序设计实验
  10. 神经网络核心基础:MP Model
  11. FreeSwitch明明已经设置了H264,为什么通话时还是别的格式(如VP8)
  12. 【美赛】全面助力2023年美国大学生数学建模竞赛,祝大家取得好成绩
  13. 闹钟函数alarm()的解释与实践
  14. 平稳分布、细致平稳条件与 Gibbs 采样
  15. 230个形容人性格的英语词汇
  16. 人工智能研究的内容:_更深入:人工智能研究的思想史
  17. java int类型能表示的数值范围
  18. 特斯拉第二季度电动汽车销量下降近 18%
  19. GDKOI 2016 魔卡少女
  20. Hikey970——Lebuntu环境配置

热门文章

  1. dwg文件的编辑方法有哪些
  2. AdminLTE入门使用
  3. MyEclipse优化全攻略
  4. win11专业版+VMware16.1.2+不可恢复错误: (vcpu-1) Exception 0xc0000005 (access violation)
  5. USB Type C数据线接线方式、工作原理
  6. 微软WHQL认证有哪些步骤?驱动程序签名及发布
  7. Windows下驱动安装对话框不自动弹出怎么办
  8. lavaral中文手册_Laravel-mix 中文文档
  9. Android画各种圆,饼图,环图,圆形图片
  10. android AdapterView 关键方法分析