Mysql主从之keepalive+MySQL高可用

一、Keepalived概述

keepalived 是集群管理中保证集群高可用的一个服务软件,用来防止单点故障。

        keepalived 是以VRRP 协议为实现基础的,VRRP 全称VirtualRouter Redundancy Protocol,即虚拟路由冗余协议。虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N 台提供相同功能的路由器组成一个路由器组,这个组里面有一个master 和多个backup,master 上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master 会发组播,当backup收不到vrrp 包时就认为master 宕掉了,这时就需要根据VRRP 的优先级来选举一个backup当master。这样的话就可以保证路由器的高可用了。

二、keepalived 主要有三个模块,分别是core、check 和vrrp。

core:模块为keepalived 的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。

check:负责健康检查,包括常见的各种检查方式。

vrrp:模块是来实现VRRP 协议的。

Keepalived环境说明

mysql主数据库IP地址master1:192.168.179.10(已搭建主从复制)

mysql备数据库IP地址backup:192.168.179.12(已搭建主从复制)

VIIP虚拟IP地址:192.168.179.15(keepalived 用于漂移的浮动ip地址)
查看安装路径文件:rpm -ql keepalived

三、配置文件

3.1、keepalived 心跳检测脚本(mysql两台服务器都需要配置)

cat  /usr/mysql/chk_mysql.sh
#!/bin/bash
counter=$(netstat -na|grep "LISTEN"|grep "3306"|wc -l)
if [ "${counter}" -eq 0 ]; then systemctl stop keepalived
fi  

3.2、master节点keepalived配置(192.168.179.10数据库服务器节点)

!Configuration File for keepalived     
global_defs {
notification_email {
ceshi@qq.com
}       
notification_email_from ceshi@qq.com
smtp_server 127.0.0.1 
smtp_connect_timeout 30
router_id MASTER-HA
}      
vrrp_script chk_mysql_port {       #检测mysql服务是否在运行。用脚本检测等等script "/usr/mysql/chk_mysql.sh"   #这里通过脚本监测 interval 2                         #脚本执行间隔,每2s检测一次weight –5   #脚本结果导致的优先级变更,检测失败(脚本返回非0)则优先级 -5                    fall 2      #检测连续2次失败才算确定是真失败。会用weight减少优先级(1-255之间)                     rise 1      #检测1次成功就算成功。但不修改优先级
}      
vrrp_instance VI_1 { state dataBase1               #这里所有节点都定义为dataBase1interface ens33               #指定虚拟ip的网卡接口mcast_src_ip 192.168.179.10   #本地IP virtual_router_id 51          #路由器标识,MASTER和BACKUP必须是一致的#定义优先级,数字越大,优先级越高同一个vrrp_instance,MASTER的优先级大于dataBase1的优先级。priority 101   advert_int 1nopreempt  #不抢占模式,在优先级高的机器上设置即可,优先级低的机器可不设置         authentication {   auth_type PASS auth_pass 123456     }virtual_ipaddress {    192.168.179.15   #虚拟IP }     
track_script {               chk_mysql_port             }
}

3.3、备节点keepalived配置(192.168.179.11数据库服务器节点)

!Configuration File for keepalived       
global_defs {
notification_email {
ceshi@qq.com
}      
notification_email_from ceshi@qq.com
smtp_server 127.0.0.1 
smtp_connect_timeout 30
router_id MASTER-HA
}      
vrrp_script chk_mysql_port {script "/usr/mysql/chk_mysql.sh"interval 2            weight -5                 fall 2                 rise 1               
}       
vrrp_instance VI_1 {state   dataBase1interface    ens33 mcast_src_ip      192.168.179.12 virtual_router_id 51    priority 99          advert_int 1         authentication {   auth_type PASS auth_pass 123456     }virtual_ipaddress {    192.168.179.15    #虚拟IP }     
track_script {                chk_mysql_port             }
}

        在配置完成之后,启动MySQL数据库和keepalive,需要注意,先启动MySQL,再启动keepalive,因为keepalive启动后会检测MySQL的运行状态,如果MySQL运行异常,keepalive会自动关闭。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/759838.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络题,网上的记录下,计算题

1.8 级信号级别方案被用在一个 10 MHz频率波段中发送信息,数据传输最大比特率是多少?不考虑噪声。 8级信号需三个比特位,根据奈奎斯特准则,10MHz频段对应最大的波特率为20MBauds。最大比特率为20Mlog(2)860Mbps. 2.北美和日本主要…

关于: .sync修饰符

.sync修饰符用于简化父组件与子组件之间双向绑定的语法。通过使用.sync修饰符,可以将子组件中对父组件属性的修改直接同步到父组件中,而无需显式地在子组件中触发事件来更新父组件的属性。.sync修饰符的作用是使双向绑定在父子组件之间更加直观和简洁。 …

武汉星起航领航中国跨境电商,助推全球贸易新篇章

在全球经济一体化的浪潮中,跨境电商以其独特的优势成为推动国际贸易增长的重要引擎。作为中国跨境电商行业的领军者,武汉星起航电子商务有限公司以其卓越的能力和经验,正积极推动中国跨境电商走向世界,书写全球贸易的新篇章。 自…

C#与三菱PLC网络模块通讯

一、操作 1.1 打开以太网模块 参数——网络参数——以太网 1.2 设置以太网模块 运行设置配置IP,打开设置配置端口号 1.3 设置端口号 上位机C#与PLC通讯,打开方式:Unpassive,固定缓冲:发送 二、打开方式说明 2.1 Active PLC主动连接&#xff0…

粒子群优化算法||粒子群算法||Improved particle swarm optimization algorithm求解函数值

粒子群算法(Particle Swarm Optimization,PSO)是一种基于群体智能的优化算法,其思想来源于鸟群寻食和鱼群捕食等自然现象。PSO算法通过模拟群体智能的行为,以一种启发式的方式寻找最优解,因此具有全局搜索能…

leetcode 18.四数之和 java

题目 思路 整体在三数之和的基础上进行修改。(所有需要修改的地方,我在代码里加了//改 的注释) 大的一个思路就是,在三数之和的外面再套一层循环。相当于固定前两个数。然后这道题目标值变成一个参数了,不是三数之和…

termux安装

termux安装Python和postgres 安装python 安装pg数据库

语音神经科学—05. Human cortical encoding of pitch in tonal and non-tonal languages

Human cortical encoding of pitch in tonal and non-tonal languages(在音调语音和非音调语言中人类大脑皮层的音高编码) 专业术语 tonal language 音调语言 pitch 音高 lexical tone 词汇音调 anatomical properties 解刨学特性 temporal lobe 颞叶 s…

C语言数组与指针的区别是什么?

一、问题 常听说数组实质就是指针,是这样的吗? 二、解答 数组是⼀组数,这组数⽤下标相区分,例如: int a[5] {1, 3, 5, 4, 8}; 产⽣5个数,这5个数是 a[0]、a[1]、…、a[4]。 指针是⼀个变量的地址。例如&…

刷题DAY28 | LeetCode 93-复原IP地址 78-子集 90-子集II

93 复原IP地址(medium) 有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 ‘.’ 分隔。 例如:“0.1.2.201” 和 “192.168.1.1” 是 有效 IP 地址&…

基于Java的桃花峪滑雪场租赁系统(Vue.js+SpringBoot)

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 游客服务2.2 雪场管理 三、数据库设计3.1 教练表3.2 教练聘请表3.3 押金规则表3.4 器材表3.5 滑雪场表3.7 售票表3.8 器材损坏表 四、系统展示五、核心代码5.1 查询教练5.2 教练聘请5.3 查询滑雪场5.4 滑雪场预定5.5 新…

算法打卡day22|回溯法篇02|Leetcode 216.组合总和III、17.电话号码的字母组合

算法题 Leetcode 216.组合总和III 题目链接:216.组合总和III 大佬视频讲解:组合总和III视频讲解 个人思路 在昨日做过的组合问题后,这道题的限制 多了两个:1.要找到和为n的k个数的组合,2.整个集合已经是固定的了[1,...,9]&…

用Python直接获取Word文档页数、字数、段落数、节数等信息

计算 Word 文档的页数、字数等信息是出版、学术和内容管理等领域的一项基本任务。准确的页数和字数对于评估文档长度、估算印刷成本、分析文本复杂性以及确保符合格式化指南至关重要。逐个预览文档查看相关信息是非常麻烦的事情,我们可以在不预览文档的情况下&#…

分享一篇Oracle RAC实战安装11G

分享一次很久以前的Oracle rac项目实施。 1、拓扑结构 基础环境是2台H3C的服务器2台3PAR的双活存储,操作系统centos7.2。借用下别人家的拓扑先(这是一套典型的RAC架构)。 2、网卡TEAM操作 以eno51和en052组成Team1组为示例: nm…

如何干好驻场运维服务

驻场运维包括第三方公司派遣,自己公司派遣的运维人员到用户现场处理问题。 其中有软件系统运维服务,基础环境运维服务,网络运维服务等。 以驻场的方式提供服务的形式。 驻场运维是一种趋势。 为什么要以驻场的形式去服务? 响应…

第十二届蓝桥杯大赛软件赛决赛C/C++ 研究生组-纯质数

直接判断数据过大 相对而言&#xff0c;由2&#xff0c;3&#xff0c;5&#xff0c;7组成的数更少&#xff0c;则先筛选出由2,3,5,7组成的数&#xff0c;再判断这些数中的质数个数即可 #include <iostream> using namespace std; int main() {printf("1903");…

3.7 RK3399项目开发实录-板载OpenWRT系统的使用(wulianjishu666)

STM32F103单片机从零到项目开发程序实例 下载链接&#xff1a;https://pan.baidu.com/s/1dWNskNinrMk4bxaE-jgHhQ?pwdymn3 1. OpenWRT 手册 1.1. 支持设备列表 主控板卡型号RK3568ROC-RK3568-PC/Station-P2 1.2. 登录 IP 、登录密码和 WIFI 名称 固件默认登录 IP 为 192.1…

化妆品行业电商数据分析

随着互联网经济的高速发展&#xff0c;电商已经成为化妆品经营的主要渠道之一。根据网络数据显示&#xff0c;11月全国化妆品网络活跃商品200万&#xff0c;零售总额为400亿。分区域来看&#xff0c;上海市、广东省、浙江省化妆品行业网络零售突出&#xff0c;三个区域网络零售…

2024.3.9|第十五届蓝桥杯模拟赛(第三期)

2024.3.9|十五届蓝桥杯模拟赛&#xff08;第三期&#xff09; 第一题 第二题 第三题 第四题 第五题 第六题 第七题 第八题 第九题 第十题 心有猛虎&#xff0c;细嗅蔷薇。你好朋友&#xff0c;这里是锅巴的C\C学习笔记&#xff0c;常言道&#xff0c;不积跬步无以至千里&…

JavaScript高级(十五)----promise.all

Promise.all方法使用场景 例如&#xff1a;用户点击按钮&#xff0c;会向服务器请求数据&#xff0c;但是数据分别是不同的后端接口获取的数据&#xff0c;需要展示在一个span中 如果用户还没请求完成 则span会显示加载中... 等待两个后端接口都返回了数据 才会将数据展示在sp…