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               #这里所有节点都定义为dataBase1
    interface ens33               #指定虚拟ip的网卡接口
    mcast_src_ip 192.168.179.10   #本地IP 
    virtual_router_id 51          #路由器标识,MASTER和BACKUP必须是一致的
    #定义优先级,数字越大,优先级越高同一个vrrp_instance,MASTER的优先级大于dataBase1的优先级。
    priority 101   
    advert_int 1
    nopreempt  #不抢占模式,在优先级高的机器上设置即可,优先级低的机器可不设置         
    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   dataBase1
    interface    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会自动关闭。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

launchctl及其配置、使用、示例

文章目录 launchctl 是什么Unix / Linux类似的工具有什么哪个更常用配置使用常用子命令示例加载一个 launch agent:卸载一个 launch daemon:列出所有已加载的服务:启动一个服务:停止一个服务:禁用一个服务:启用一个服务: 附com.example.myagent.plist内容有趣的例子参考 launch…

力扣L15--- 67.二进制求和(JAVA版)-2024年3月17日

1.题目描述 2.知识点 注1: 二进制用 %2 /2 3.思路和例子 采用竖位相加的方法 4.代码实现 class Solution {public String addBinary(String a, String b) {StringBuilder sbnew StringBuilder();int ia.length()-1;int jb.length()-1;int jinwei0;int digit1,d…

快速排序(数据结构)

1. 前言: 这两种排序经常使用,且在算法题中经常遇见。 这里我们简单分析讨论一下。 1. 快速排序 平均时间复杂度:O(nlogn) 最坏时间复杂度: O(n^2) 1.1. 左右向中遍历: 取最右侧4…

Multiplicity - 用一个键盘和鼠标控制多台电脑

Multiplicity 是一款用于多台电脑间控制的软件。通过这个工具,用户可以轻松地在多个计算机之间共享剪贴板、鼠标、键盘和显示屏幕。这样,无需每台电脑之间频繁切换,工作效率也会大大提高。 特征 远程PC访问 无缝控制过渡 兼容所有显示类型…

【Linux杂货铺】进程的基本概念

目录 🌈前言🌈 📁进程的概念 📂描述进程-PCB 📂 查看进程 📂 查看正在运行的程序 📂杀死进程 📂通过系统调用获取进程标识符 📂通过系统调用创建进程 &#x1f…

万界星空科技商业开源MES,技术支持+项目合作

商业开源的一套超有价值的JAVA制造执行MES系统源码 亲测 带本地部署搭建教程 教你如何在本地运行运行起来。 开发环境:jdk11tomcatmysql8springbootmaven 可以免费使用,需要源码价格便宜,私信我获取。 一、系统概述: MES制造执…

机器学习(26)回顾gan+文献阅读

文章目录 摘要Abstract一、李宏毅机器学习——GAN1. Introduce1.1 Network as Generator1.2 Why distribution 2. Generative Adversarial Network2.1 Unconditional generation2.2 Basic idea of GAN 二、文献阅读1. 题目2. abstract3. 网络架构3.1 Theoretical Results 4. 文…

学习数据结构和算法的第16天

单链表的实现 链表的基本结构 #pragma once #include<stdio.h> #include<stlib.h> typedf int SLTDataType; typedy struct SListNode {SLTDataType data;struct SListNode*next; }SLTNode;void Slisprint(SLTNode*phead); void SListPushBack(SLTNode**pphead,S…

使用 VS Code + Github 搭建个人博客

搭建个人博客的方案 现在&#xff0c;搭建个人博客的方式有很多&#xff0c;门槛也很低。 可以选择已有平台&#xff1a; 掘金语雀知乎简书博客园SegmentFault… 也可以选择一些主流的博客框架&#xff0c;自行搭建。 HexoGitBookVuePressdumi… 如何选择&#xff1f; 我…

每日五道java面试题之mybatis篇(三)

目录&#xff1a; 第一题. MyBatis的框架架构设计是怎么样的?第二题. 为什么需要预编译?第三题. Mybatis都有哪些Executor执行器&#xff1f;它们之间的区别是什么&#xff1f;第四题. Mybatis中如何指定使用哪一种Executor执行器&#xff1f;第五题. Mybatis是否支持延迟加载…

如何学习一个大型分布式Java项目

前言 很多同学在没有实习经验的时候看到一个多模块分布式项目总是有一种老虎吃天的无力感&#xff0c;就像我刚毕业去到公司接触项目的时候一样&#xff0c;模块多的夸张&#xff0c;想学都不知道从哪开始学&#xff0c;那么我们拿到一份代码后如何从头开始学习一个新项目呢。…

挑战杯 机器视觉目标检测 - opencv 深度学习

文章目录 0 前言2 目标检测概念3 目标分类、定位、检测示例4 传统目标检测5 两类目标检测算法5.1 相关研究5.1.1 选择性搜索5.1.2 OverFeat 5.2 基于区域提名的方法5.2.1 R-CNN5.2.2 SPP-net5.2.3 Fast R-CNN 5.3 端到端的方法YOLOSSD 6 人体检测结果7 最后 0 前言 &#x1f5…

【鸿蒙HarmonyOS开发笔记】常用组件介绍篇 —— Button按钮组件

概述 Button为按钮组件&#xff0c;通常用于响应用户的点击操作。 参数 Button组件有两种使用方式&#xff0c;分别是不包含子组件和包含子组件&#xff0c;两种方式下&#xff0c;Button 组件所需的参数有所不同&#xff0c;下面分别介绍 不包含子组件 不包含子组件时&…

解决 Nginx 1.24 版本下载视频慢和文件问题的方法

解决 Nginx 1.24 版本下载视频慢和文件问题的方法 如果你最近在腾讯云服务器上遇到了下载视频慢以及视频文件无法正常使用的问题&#xff0c;可能需要检查一下你的 Nginx 版本。下面是一个真实案例的分析和解决方案&#xff0c;希望能帮助你避免或解决类似问题。 背景 一个运…

使用gitee自动备份文件

需求 舍友磁盘前两天gg了&#xff0c;里面的论文没有本地备份&#xff0c;最后费劲巴拉的在坚果云上找到了很早前的版本。我说可以上传到github&#xff0c;建一个私人仓库就行了&#xff0c;安全性应该有保证&#xff0c;毕竟不是啥学术大亨&#xff0c;不会有人偷你论文。但是…

从JVM的退出机制分析Java程序的优雅关闭退出

前言 Java程序启动从main函数开始启动&#xff0c;是程序入口和主线程&#xff0c;但程序会在什么时候结束&#xff1f;为什么有的Java程序在启动后很快就结束了&#xff0c;比如HelloWorld程序&#xff0c;有的程序却能一直在运行&#xff0c;比如Tomcat启动后就一直保持进程…

AI:149-法律电子邮件图像中的欺诈检测与敲诈勒索追踪—深度学习技术

🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带关键代码,详细讲解供大家学习,希望…

JSONP漏洞详解

目录 同源策略 JSONP简介 JSONP劫持漏洞 漏洞原理 漏洞利用过程 利用工具 JSONP漏洞挖掘思路 JSONP防御 首先&#xff0c;要了解一下什么是同源策略&#xff1f; 同源策略 同源策略&#xff08;SOP&#xff09;是浏览器的一个安全基石&#xff0c;浏览器为了保证数据…

AI系统性学习01- Prompt Engineering

文章目录 面向开发者的Prompt Engineering一、简介二、Prompt设计原则1 环境配置2.两个基本原则2.1 原则1&#xff1a;编写清晰、具体的指令2.1.1 策略一&#xff1a;分割2.1.2 策略2&#xff1a;结构化输出2.1.3 策略3&#xff1a;模型检测2.1.4 策略4&#xff1a;提供示例 2.…

[数据集][目标检测]焊接件表面缺陷检测数据集VOC+YOLO格式2292张10类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;2292 标注数量(xml文件个数)&#xff1a;2292 标注数量(txt文件个数)&#xff1a;2292 标注…