mysql MGR配置keepalived
之前写过一篇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相关推荐
- 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 ...
- mysql 主从 keepalived_一次mysql主从加keepalived配置搭建及切换演示
[需求] 根据需求需要搭建mysql主从架构数据库及加keepalived进行自动切换VIP(没有使用脚本进行检查对端数据库及互换主从) [环境介绍] 系统环境:CentOS release 6.4 ...
- mysql主主备份_MySQL主从备份和主主备份配置+Keepalived+MySQL读写分离
一.MySQL主从备份 为保证数据库的安全和效率,可以使用主从备份,当有写的操作可以在主服务器上操作,操作完之后备份到从服务器上,当有读操作时可以访问从服务器,这样在一定程度上保证了数据库的安全,当主 ...
- mysql备份-a是什么_MySQL主从备份和主主备份配置+Keepalived+MySQL读写分离
一.MYSQL主从备份 为保证数据库的安全和效率,可以使用主从备份,当有写的操作可以在主服务器上操作,操作完之后备份到从服务器上,当有读操作时可以访问从服务器,这样在一定程度上保证了数据库的安全,当主 ...
- MySQL + MGR学习培训计划
MySQL培训简介 一.课程简介与目标 通过本次培训,可以系统的掌握MySQL的重要知识点,通过讲义点拨和经验/案例分享,快速提高实战水平: 每个专题结束后,会有相应的实验进行实践. 二.讲师:目前任 ...
- mysql 主主+ Keepalived 高可用
这是在mysql互为主从的基础上做的 yum -y install keepalived #两台机器上都装 配置Keepalived主从, vrrp_instance VI_1 { state ...
- mysql mgr简介_MySQL Group Replication(MGR)使用简介与注意事项
MySQL Group Replication(MGR)是MySQL官方在5.7.17版本引进的一个数据库高可用与高扩展的解决方案,以插件形式提供.MGR基于分布式paxos协议,实现组复制,保证数据 ...
- mysql主从复制 lvs+ keepalived
2019独角兽企业重金招聘Python工程师标准>>> 一.环境 Master(主机A):192.168.1.1 Slave(主机B) :192.168.1.2 W-VIP(写入 ...
- MySQL主主+Keepalived高可用(一):解决单点故障
在企业中,一般系统架构的瓶颈会出现在数据库这一部分,Mysql主从架构在很大程度上解决了这部分瓶颈,但是在Mysql主从同步的架构也存在很多问题.比如: 1. 关于数据写入部分(也就是主库)往往很难做 ...
最新文章
- 青蛙跳台阶c语言递归函数,青蛙跳台阶问题的四种解法
- $.ajax上传文件或者上传图片
- SQL SERVER2008 镜像
- 模拟线程切换 C++
- C可变参数详解及其函数设计
- Git删除不存在对应远程分支的本地分支
- 希尔排序+移位法(吊打交换法)
- echart中拆线点的偏移_Real BIM | Rhino+Grasshopper在双曲异形玻璃幕墙中的应用
- 软件工程汇编程序设计——分支程序实验,循环程序实验,综合程序设计实验
- 神经网络核心基础:MP Model
- FreeSwitch明明已经设置了H264,为什么通话时还是别的格式(如VP8)
- 【美赛】全面助力2023年美国大学生数学建模竞赛,祝大家取得好成绩
- 闹钟函数alarm()的解释与实践
- 平稳分布、细致平稳条件与 Gibbs 采样
- 230个形容人性格的英语词汇
- 人工智能研究的内容:_更深入:人工智能研究的思想史
- java int类型能表示的数值范围
- 特斯拉第二季度电动汽车销量下降近 18%
- GDKOI 2016 魔卡少女
- Hikey970——Lebuntu环境配置
热门文章
- dwg文件的编辑方法有哪些
- AdminLTE入门使用
- MyEclipse优化全攻略
- win11专业版+VMware16.1.2+不可恢复错误: (vcpu-1) Exception 0xc0000005 (access violation)
- USB Type C数据线接线方式、工作原理
- 微软WHQL认证有哪些步骤?驱动程序签名及发布
- Windows下驱动安装对话框不自动弹出怎么办
- lavaral中文手册_Laravel-mix 中文文档
- Android画各种圆,饼图,环图,圆形图片
- android AdapterView 关键方法分析