小白到运维工程师自学之路 第三十七集 (mha高可用集群)

news2024/11/25 11:45:51

一、概述

        MHA(Master High Availability)是一个开源的MySQL高可用性解决方案,它可以自动监测MySQL主节点的状态,并在主节点发生故障时自动将从节点提升为新的主节点,从而实现MySQL的高可用性。MHA集群通常由多个MySQL实例组成,其中一个是主节点,其余的是从节点。MHA集群可以在主节点故障时自动进行故障转移,从而保证MySQL服务的高可用性和可靠性。MHA集群的优点包括:自动化管理、高可用性、快速故障转移、易于部署和维护等。

二、工作原理

1. MHA的主要组件包括manager节点、monitor节点和各个MySQL节点。manager节点是MHA的控制节点,用于管理和监控MySQL集群的状态;monitor节点是用于监控MySQL主节点状态的节点;各个MySQL节点包括主节点和备用节点。

2. MHA的manager节点会定期向monitor节点发送心跳包,以检测monitor节点是否正常工作。如果monitor节点出现故障,manager节点会自动将monitor节点的角色切换到另一个可用的monitor节点。

3. 当MySQL主节点出现故障时,monitor节点会检测到主节点的状态变化,并向manager节点发送通知。manager节点会根据预定义的切换策略,自动将备用节点切换为新的主节点,从而实现MySQL服务的高可用性。

4. 在切换过程中,MHA会自动执行一系列的操作,包括停止原来的主节点、启动新的主节点、更新DNS记录等。这些操作可以确保MySQL服务的连续性和数据一致性。

三、准备工作

1、三台虚拟机能互相通联

2、每台虚拟机关闭防火墙

3、每台虚拟机安装MHA、SSH、Mariadb

四、配置

1、配置IP节点

vim /etc/hosts    打开自带的域名服务
写入

192.168.1.250  syh1
192.168.1.251  syh2
192.168.1.252  syh3

 2、配置免密登录

ssh-keygen -t rsa   生成密钥(每一台服务器都要生成)

ssh-copy-id -i .ssh/id_rsa.pub root@syh1  复制密钥(在主、从服务器中复制管理服务器的密钥)

scp .ssh/authorized_keys root@syh2:.ssh/  将密钥上传到syh2、syh3

生成密钥

复制密钥

 上传密钥

 测试(ok 成功了)

3、配置主从复制

首先配置主服务器(syh2)

yum -y install epel-release                          安装epel源
yum -y install mariadb mariadb-server                安装mariadb
rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm        安装mha

 vim /etc/my.cnf    修改配置文件

server-id = 1                ID为1  表示这是主服务器
log-bin = master-log         启用这个二进制文件
relay-log = relay-log
skip_name_resolve

systemctl start mariadb   启动服务
mysql        进入数据库

grant replication slave on *.* to ‘slave’@'%' identified by '123'; 授权用户给从库使用 密码是123

MariaDB [(none)]> grant all on *.* to ‘mha’@'%' identified by '123'; 授权用户给mariadb使用密码是123

show master status;        查看主服务器的位置信息

 配置从服务器

yum -y install mariadb mariadb-server epel-release  安装mariadb epel

rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm       安装mha
vim /etc/my.cnf  配置从服务器

server-id = 2            id为2 表示这是从服务器         
relay-log = relay-log    开启这个二进制文件         
log-bin = master-log         
read_only = ON               
relay_log_purge = 0           
skip_name_resolve              
log_slave_updates = 1

 

systemctl start mariadb   开启服务
mysql   进入数据库

change master to master_host='192.168.1.251',master_user='slave',master_password='123',master_log_file='master-log.000003',master_log_pos=529;    指定主服务器的信息

start slave;  开启从服务器

grant all on *.* to ‘slave’@'%' identified by '123'; 授权给mha服务器使用
 

 配置manager管理服务器

yum -y install mariadb mariadb-server epel-release   安装mariadb  epel

yum -y install mha4mysql-node-0.56-0.el6.noarch.rpm mha4mysql-manager-0.56-0.el6.noarch.rpm 

安装mha
mkdir /etc/mha_master   
vim /etc/mha_master/mha.cnf  创建manager配置文件
[server default]
user=mha                                     mha的用户
password=123                                 用户密码
manager_workdir=/etc/mha_master/app1         管理节点上的工作路径
manager_log=/etc/mha_master/manager.log      日志路径
remote_workdir=/mydata/mha_master/app1       被管理节点的工作路径        
ssh_user=root                                管理工具连接用户的名称
repl_user=slave                              管理工具连接从用户的密码
repl_password=123                            管理工具连接用户的密码
ping_interval=1                              管理工具检测MySQL主从复制状态的时间间隔
[server1]                                    主节点
hostname=192.168.1.251                       主节点IP
ssh_port=22                                  主节点端口
candidate_master=1                           
[server2]                                    从节点
hostname=192.168.1.252                       从节点IP
ssh_port=22                                  从节点端口
candidate_master=1

masterha_check_ssh --conf=/etc/mha_master/mha.cnf  对各个节点进行检测

masterha_check_repl --conf=/etc/mha_master/mha.cnf   检查管理的MySQL复制集群的连接配置参数是否OK

 

以上就是MHA高可用集群的配置

如有错误欢迎各位大佬批评指正,我们共同进步

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

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

相关文章

C++基础(7)——类和对象(5)

前言 本文主要介绍C中的继承 4.6.1:继承和继承方式(公有、保护、私有) 4.6.2:继承中的对象模型,sizeof()求子类对象大小 4.6.3:子类继承父类后,两者构造和析构顺序 父类先构造、子类先析构 如…

一道SQL Server窗口函数的面试题

概要 本文介绍一道和SQL Server窗口函数相关的面试题,主要涉及窗口函数的原理和Framing参数的设置。 设计和实现 题目介绍 输入数据如下: 主要包括账户编号(account_no),交易日期(tran_date&#xff0…

Win10下旧移动硬盘设备USB3.0异常

旧USB3.0硬盘盒设备在WIN10下的异常情况,通过慢插入、快插入的方式进行工作模式的选择,其中在USB3.0的情况下,读写工作异常。 1、测试硬盘盒 商品名称:Iomega Prestige Disktop Hard Drive,USB 3.0 购买日期:2012年…

Ubuntu20.04显卡驱动安装的完整过程(超详细)

1、首先查看硬件:显卡是否安装 lspci | grep -i vga lspci | grep -i nvidia 注意:如果没显示显卡信息则看显卡是否安装好(看下显卡风扇是否在转,图中是显卡位置),然后再执行上面的命令. 确定显卡安装没问…

Linux基础(一)—— 什么是Linux系统?和Windows区别在哪?常见的安装方式【新星计划Linux】

#2023 博客之星–城市之星领跑者活动开启# 文章目录 01 | Linux的特点02 | Linux 和 Windows03 | Linux的种类04 | Linux的安装方式 Linux 是一种自由和开放源代码的 Unix 操作系统,其内核是由林纳斯托瓦兹在1991年开始编写。Linux 操作系统采用了 GNU 项目的许多组…

【深度学习】4-3 误差反向传播法 - Affine/Softmax层的实现

Affine层 神经网络的正向传播中进行的矩阵的乘积运算(也就是Y np.dot(X, W) B)在几何学领域被称为“仿射变换”。因此,这里将进行仿射变换的处理实现为“Affine层”。 几何中,仿射变换包括一次线性变换和一次平移,分别对应神经网络的加权…

自由软件,自由社会之GNU 操作系统的初始公告

导读这是 GNU 工程的原始通告,由理查德斯托曼于 1983 年 9 月 27 日发表。纵观历史,可以发现 GNU 工程在很多地方都与这份初始通告有很多差异。比如实际是拖延到了 1984 年 1 月才开始。而自由软件的很多哲学理念也是数年之后才得以厘清。 From mit-vax!…

阿里云学生验证网页及申请认证流程

阿里云学生用户完成学生认证可以领取一台阿里云服务器,那么问题来了,阿里云学生验证申请入口​在哪?阿里云百科分享阿里云学生验证入口网页链接及学生认证全流程: 目录 阿里云学生验证入口及申请流程 打开学生验证申请入口 支…

周大福荣获2023亚洲零售大奖——年度珠宝零售商

由成立于1991年、服务于亚洲充满活力的零售业的行业杂志—《亚洲零售杂志》主办的“2023亚洲零售大奖”评选结果于6月15日揭晓,周大福珠宝集团凭借创新和卓越的表现荣获“2023亚洲零售大奖—年度珠宝零售商(中国)”,是中国唯一入榜…

产品经理面试常见的25个必问题(二)

14、举例分析你知道的几种商业模式和盈利模式? 先明确商业模式和盈利模式的不同。 1)、商业模式有很多种,但基本分为三类: ●以客户驱动的商业模式,多是代理大厂商产品为主,以营销客户赚差价和服务费为主&#xff1…

GPT提示词系统学习-第四课-好玩的角色指令-效果简直是YYDS了

开篇 各位奇思妙想的程序伙伴们,如果你还未加入GPT万能生成器的狂欢队伍,那现在正是时候!让我来带你短暂探访一下GPT惊艳的角色创建功能。嘘~让我们秘密派对开始! 这位万能生成器让人头疼的问题终于迎刃而解——GPT能为你吹气成猴!它帮你创作角色如同魔法一般。 首先,…

【玩转Docker小鲸鱼叭】虚拟化技术简介

什么是虚拟化技术? Docker 是一款基于容器虚拟化技术构建的软件,那到底什么虚拟化技术呢?在学习 Docker 之前,先简单了解下虚拟化技术。 虚拟化是云原生的实现基础,它能够帮助我们更加有效地利用物理计算机硬件。 虚…

2023年中级工程师职称认定、考试和评审有什么区别呢?

2023年中级工程师职称认定、考试和评审有什么区别呢? 人社部门中级工程师职称获得的渠道只有三种:认定、考试和评审这三种渠道,都可以拿到正规的中级职称,那么这几种有什么区别呢? 要说区别的话,启程别老师告诉你&…

python使用pyinstaller打包运行过程中莫名的被阻塞

问题描述 使用pyinstaller打包python代码命令 python -m PyInstaller -i logo.ico -F -p ./console -n scl_runner ./main.py运行之后会有一个终端,可以看到终端日志输出正常,多次远程调用也没有问题,死循环测试调用10万次也没有卡死 然…

2023 互联网大厂 Java 面试 1210 道题全解析

很多 Java 工程师的技术不错,但是一面试就头疼,10 次面试 9 次都是被刷,过的那次还是去了家不知名的小公司。 问题就在于:面试有技巧,而你不会把自己的能力表达给面试官。 应届生:你该如何准备简历&#x…

管理类联考——写作——素材篇——论说文——写作素材01—志篇:理想•信念

管理类专业学位联考 (写作能力) 论说文素材 01——志篇:理想信念 论文说材料: 古之立大事者,不惟有超世之才,亦必有坚韧不拔之志。 ——苏轼《晁错论》 一:道理论据 没有生活的理想,就没有理想的生活。 ——中国共…

C/C++入门秋招知识点八股文

1.C/C关键字 1.1 static(静态)变量 在C中,关键字static是静态变量: 静态变量只会初始化一次,然后在这函数被调用过程中值不变。在文件内定义静态变量(函数外),作用域是当前文件&a…

在HTML语法中,用花括号{}括起来的内容是什么呢?

在HTML语法中,使用花括号{}括起来的内容通常表示占位符或模板语法,用于动态地插入或生成具体的内容。这种语法通常是由特定的模板引擎或框架提供,并在服务器端进行处理。 比如在某Django模板文件中,有如下的代码: &l…

理解Widget::Widget(QWidget *parent) :QWidget(parent)同C++ 基类和派生类的构造函数

1 QT中这段代码如何理解呢 Widget::Widget(QWidget *parent) :QWidget(parent){} 2 首先&#xff0c;来看一个例子 #include <iostream> using namespace std; class Base { public:Base() :m_num(0){ // 构造函数让类范围的m_num被初始化. cout << "thi…

平衡小车学习教程1——硬件资源及其小车底层硬件介绍篇

起因 大家在学会了Stm32后&#xff0c;可以做一个项目来进行来进行练手&#xff0c;平衡小车就是一个很好的练手项目&#xff0c;可以检验自己的学习成果&#xff0c;也可以对学习到的知识进行一个复习。再一个就是通过做项目来锻炼自己的工程能力。 好啦&#xff0c;废话不多…