Centos7——MHA部署

2023-11-19


实现主宕机,从切换为主,保证业务正常运行

环境准备
CentOS Linux release 7.5.1804 (Core)

角色 节点 ip 说明
manager node1 192.168.174.130 管理
master node2 192.168.174.131
slave1 node3 192.168.174.132
slave2 node4 192.168.174.133

基础操作

修改主机名和hosts文件(四台)

[root@localhost ~]# hostname node1
[root@localhost ~]# hostname node2
[root@localhost ~]# hostname node3
[root@localhost ~]# hostname node4

四台相同操作

[root@localhost ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.174.130 node1
192.168.174.131 node2
192.168.174.132 node3
192.168.174.133 node4

在这里插入图片描述

关闭防火墙(四台)

[root@node1 ~]# systemctl stop firewalld;setenforce 0
[root@node2 ~]# systemctl stop firewalld;setenforce 0
[root@node3 ~]# systemctl stop firewalld;setenforce 0
[root@node4 ~]# systemctl stop firewalld;setenforce 0

上传安装包
manager包

链接: https://pan.baidu.com/s/1Jrq1Y2CKC4dxfq_m7BvM9g 提取码: b8w2 复制这段内容后打开百度网盘手机App,操作更方便哦

node包

链接: https://pan.baidu.com/s/1awh55tSQvP3KjZHIugUMyA 提取码: sc2p 复制这段内容后打开百度网盘手机App,操作更方便哦
ssh免密登陆

[root@node1 ~]# ssh-keygen -t rsa
[root@node2 ~]# ssh-keygen -t rsa
[root@node3 ~]# ssh-keygen -t rsa
[root@node4 ~]# ssh-keygen -t rsa

在这里插入图片描述

[root@node1 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@node1

在这里插入图片描述

[root@node2 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@node1
[root@node3 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@node1
[root@node4 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@node1
[root@node1 ~]# cat /root/.ssh/authorized_keysau

在这里插入图片描述
将authorized_keysau文件发送给node2/3/4

[root@node1 ~]# scp .ssh/authorized_keys root@node2:.ssh/
[root@node1 ~]# scp .ssh/authorized_keys root@node3:.ssh/
[root@node1 ~]# scp .ssh/authorized_keys root@node4:.ssh/

测试是否免密登陆其他主机

[root@node1 ~]# ssh node2

[root@node1 ~]# ssh node3

[root@node1 ~]# ssh node4

在这里插入图片描述

master操作

[root@node2 ~]# yum -y install epel-release
[root@node2 ~]# mariadb mariadb-server
[root@node2 ~]# rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm 

修改配置文件

[root@node2 ~]# vim /etc/my.cnf
server-id = 1
log-bin = master-log
relay-log = relay-log
skip_name_resolve

在这里插入图片描述

[root@node2 ~]# systemctl restart mariadb #重启mysql
[root@node2 ~]# mysql

#授权用户给从库使用
MariaDB [(none)]> grant replication slave on *.* to slave@'192.168.174.%' identified by '123'; 
Query OK, 0 rows affected (0.04 sec)

#授权用户给manager管理master使用
MariaDB [(none)]> grant all on *.* to mha@'192.168.174.%' identified by '123'; 
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> show master status;
+-------------------+----------+--------------+------------------+
| File              | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+--------------+------------------+
| master-log.000003 |      529 |              |                  |
+-------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

slave1操作

[root@node3 ~]# yum -y install mariadb mariadb-server epel-release
[root@node3 ~]# rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm 

主从同步

[root@node3 ~]# vim /etc/my.cnf
server-id = 2                
relay-log = relay-log         
log-bin = master-log         
read_only = ON               
relay_log_purge = 0           
skip_name_resolve              
log_slave_updates = 1
[root@node3 ~]# mysql

MariaDB [(none)]> change master to master_host='192.168.174.131',master_user='slave',master_password='123',master_log_file='master-log.000003',master_log_pos=529;
Query OK, 0 rows affected (0.01 sec)

MariaDB [(none)]> start slave;
Query OK, 0 rows affected (0.01 sec)

MariaDB [(none)]> show slave status \G;

在这里插入图片描述

#授权用户给manager管理slave使用
MariaDB [(none)]> grant all on *.* to slave@'192.168.174.%' identified by '123';
Query OK, 0 rows affected (0.00 sec)

slave2操作

[root@node4 ~]# yum -y install mariadb mariadb-server epel-release
[root@node4 ~]# rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm 

主从同步

[root@node3 ~]# vim /etc/my.cnf
server-id = 3               
relay-log = relay-log         
log-bin = master-log         
read_only = ON               
relay_log_purge = 0           
skip_name_resolve              
log_slave_updates = 1
[root@node3 ~]# mysql

MariaDB [(none)]> change master to master_host='192.168.174.131',master_user='slave',master_password='123',master_log_file='master-log.000003',master_log_pos=529;
Query OK, 0 rows affected (0.01 sec)

MariaDB [(none)]> start slave;
Query OK, 0 rows affected (0.01 sec)

MariaDB [(none)]> show slave status \G;

在这里插入图片描述

#授权用户给manager管理slave使用
MariaDB [(none)]> grant all on *.* to slave@'192.168.174.%' identified by '123';
Query OK, 0 rows affected (0.00 sec)

manager操作

[root@node1 ~]# yum -y install mariadb mariadb-server epel-release
[root@node1 ~]# yum -y install mha4mysql-node-0.56-0.el6.noarch.rpm mha4mysql-manager-0.56-0.el6.noarch.rpm 

创建manager配置文件

[root@node1 ~]# mkdir /etc/mha_master
[root@node1 ~]# vim /etc/mha_master/mha.cnf
[server default]
user=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
[server1]
hostname=192.168.174.131
ssh_port=22
candidate_master=1
[server2]
hostname=192.168.174.132
ssh_port=22
candidate_master=1
[server3]
hostname=192.168.174.133
ssh_port=22
candidate_master=1

在这里插入图片描述
对各个节点进行检测

[root@node1 ~]# masterha_check_ssh --conf=/etc/mha_master/mha.cnf

在这里插入图片描述

检查管理的MySQL复制集群的连接配置参数是否OK

[root@node1 ~]# masterha_check_repl --conf=/etc/mha_master/mha.cnf

在这里插入图片描述
如果出错,在master重新授权一下,再次执行

MariaDB [(none)]> grant all on *.* to mha@'192.168.174.%' identified by '123';
Query OK, 0 rows affected (0.00 sec)

在这里插入图片描述
在这里插入图片描述
启动mha

[root@node1 ~]# nohup masterha_manager -conf=/etc/mha_master/mha.cnf &> /etc/mha_master/manager.log &                                                                                      
[1] 13110
[root@node1 ~]# masterha_check_status -conf=/etc/mha_master/mha.cnf
mha (pid:13110) is running(0:PING_OK), master:192.168.174.131

测试 MHA 故障转移

在master操作

[root@node2 ~]# yum -y install psmisc
[root@node2 ~]# systemctl stop mariadb

在manger节点查看日志

[root@node1 ~]# tail -50 /etc/mha_master/manager.log

在这里插入图片描述
注意,故障转移完成后,manager将会自动停止
在slave2节点上查看

在这里插入图片描述

连续漂移

manager操作

#启动mha
[root@localhost mha_master]# nohup masterha_manager -conf=/etc/mha_master/mha.cnf &> /etc/mha_master/manager.log & 
[1] 18826
#查看master主机地址
[root@localhost mha_master]# masterha_check_status -conf=/etc/mha_master/mha.cnf
mha monitoring program is now on initialization phase(10:INITIALIZING_MONITOR). Wait for a while and try checking again.
[root@localhost mha_master]# masterha_check_status -conf=/etc/mha_master/mha.cnf
mha (pid:18826) is running(0:PING_OK), master:192.168.174.131
[root@localhost ~]# cd /etc/mha_master

[root@localhost mha_master]# rm -rf app1/

master操作131

#停止mysql
[root@localhost ~]# systemctl stop mariadb

在slave2(133)查看
在这里插入图片描述
132变成master

MariaDB [(none)]> show master status;
+-------------------+----------+--------------+------------------+
| File              | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+--------------+------------------+
| master-log.000003 |      245 |              |                  |
+-------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

将原来131主设置为从

#重新mysql
[root@localhost ~]# systemctl start mariadb
[root@localhost ~]# mysql
MariaDB [(none)]> stop slave;
Query OK, 0 rows affected, 1 warning (0.00 sec)

MariaDB [(none)]> change master to master_host='192.168.174.132',master_user='slave',master_password='123',master_log_file='master-log.000003',master_log_pos=245;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> start slave;
Query OK, 0 rows affected (0.00 sec)

在这里插入图片描述
参考博客:https://blog.csdn.net/qq_49296785/article/details/109326517

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Centos7——MHA部署 的相关文章

随机推荐

  • JavaScript Boolean 对象

    解释 Boolean 对象用于转换一个不是 Boolean 类型的值转换为 Boolean 类型值 true 或者false 语法 var a true var b false Boolean 对象属性 属性 描述 constructor
  • 数据结构学习系列之顺序表的两种创建方式

    方式1 通过返回值返回所申请的内存空间的首地址 示例代码 list t create seq list 1 list t p list t malloc sizeof list t if NULL p printf 内存分配失败 n exi
  • linux内核、驱动和硬件之间的关系和通信

    linux驱动是直接和硬件打交道的软件程序 层次结构上 它处于操作系统和硬件之间 驱动与linux内核的关系 驱动程序提供的一组设备驱动接口函数Device Driver Interface给操作系统在linux中 这一组设备驱动接口函数一
  • 前端axios下载excel文件(二进制)的处理方法

    前端axios下载excel文件 二进制 的处理方法 后端生成excel后 前端 click 事件进行下载 脱坑记录 亲测有效 lz 使用的是 axios 发起请求 首先 介绍一下思路 准备通过动态创建 a 标签 通过 blob 对象进行接
  • java调优总结

    JVM调优总结 序 几年前写过一篇关于JVM调优的文章 前段时间拿出来看了看 又添加了一些东西 突然发现 基础真的很重要 学习的过程是一个由表及里 再由里及表的过程 呵呵 所谓的 温故而知新 而真正能走完这个轮回的人 也就能称为大牛或专家了
  • 补充:YOLO模型训练时loss出现nan值或者测试时P\R\map全部为0值的解决办法(GTX16xx系列显卡)

    补充 1 参考1 2 补充 3 小结 1 参考1 在参考有头发的垃圾猿的 YOLO系列训练时出现loss出现nan值或者测试时P R map全部为0值的解决办法 GTX16xx系列显卡大坑 后 发现问题不能得到实际的解决 可能是版本不一样导
  • vs调试正确显示utf8格式字符串

    vs调试正确显示utf8格式字符串 自从将visual studio从2010升级到2015后 发现调用接口的utf8格式字符串不能正常显示了 常常被莫名其妙截断 查了下 原来可以直接将变量拖到watch窗口中 在变量名后面手动添加 s8予
  • 计算机网络的两级子网指,计算机三级网络技术分类练习题_网络基本概念(一).doc...

    您所在位置 网站首页 gt 海量文档 nbsp gt nbsp资格 认证考试 nbsp gt nbsp计算机等级考试 计算机三级网络技术分类练习题 网络基本概念 一 doc6页 本文档一共被下载 次 您可全文免费在线阅读后下载本文档 下载提
  • 高可用集群(1)- Pacemaker+Corosync实现负载均衡和高可用

    1 问题引入 计算机集群可用于提供高可用性服务或资源 多台机器的冗余是用来防止多种类型的故障 集群将使用Pacemaker和Corosync提供资源管理和消息传递 下面将介绍所需的包和对其配置文件的修改 以及使用Pacemaker命令行工具
  • 循环的断点调试,指定第几次循环

    循环的断点调试 指定第几次循环 右击断点添加条件 断点要设置在条件之后 例如本次 想要i 3的时候的循环 条件要设到i后边 令i 3 回车 再按F5即可
  • CSS 学习笔记(基础)

    用来控制网页表现的语言 CSS Cascading Style Sheet 层叠样式表 然后我们继续看看 W3C 标准 结构 HTML 表现 CSS 行为 JavaScript CSS导入方式 选择器 属性 由于网页的框架结构是由HTML实
  • pydantic学习与使用 ------ 基本模型(BaseModel)使用

    前言 在 pydantic 中定义对象的主要方法是通过模型 模型继承 BaseModel pydantic主要是一个解析库 而不是验证库 验证是达到目的的一种手段 建立一个符合所提供的类型和约束的模型 换句话说 pydantic保证输出模型
  • Google FlatBuffers——开源、跨平台的新一代序列化工具

    前段时间刚试用了一个序列化工具cereal 请看 cereal C 实现的开源序列化库 打算再总结下我对google proto buf序列化库的使用呢 结果还没动手 大Google又出了一个新的 开源 跨平台的序列化工具 FlatBuff
  • ubuntu14 扩容的痛苦经历,在这里为大家献上我的过程(附带有gparted-live-0.25.0-3-i686下载地址)

    参考文档 https www linuxidc com Linux 2015 08 121674 htm VMware11下对虚拟机Ubuntu14 10系统所在分区sda1进行磁盘扩容 http www nxpic org module
  • CSS 语法

    CSS 规则集 rule set 由选择器和声明块组成 选择器指向您需要设置样式的 HTML 元素 声明块包含一条或多条用分号分隔的声明 每条声明都包含一个 CSS 属性名称和一个值 以冒号分隔 多条 CSS 声明用分号分隔 声明块用花括号
  • 提高情商6步法

    目录 1 识别与洞察 2 自制与表达 3 共情与共鸣 4 尊重与善意 5 认同与化解 戈尔曼把情商概括为以下五个方面的能力 认识自身情绪的能力 妥善管理情绪的能力 自我激励的能力 认识他人情绪的能力 管理人际关系的能力 1 识别与洞察 感知
  • Linux环境 Mysql安装详解

    Linux环境 Mysql安装详解 前言 mysql作为被广泛使用的数据库 安装的必要性是无需质疑的 而本人在多次安装中遇到了情况各异的问题 所以想以这篇文章记录一下安装配置的过程 并且尽量详细介绍每一步的原因 如果再遇到问题 知其然且知其
  • Inno打包后开始运行前检查文件是否存在

    Code function FileDoesNotExist file string Boolean begin if FileExists file then begin Result False end else begin Resul
  • Javascript高级程序设计——4.运算符

    运算符 1 一元运算符 2 算术运算符 3 关系运算符 4 相等运算符 全等运算符 5 逻辑运算符 6 位运算符 省略 不详细介绍 7 赋值运算符 8 其他运算符 9 运算符优先级 在ECMAScript与众不同之处在于 运算符可以适用于很
  • Centos7——MHA部署

    目录 基础操作 master操作 slave1操作 slave2操作 manager操作 测试 MHA 故障转移 连续漂移 实现主宕机 从切换为主 保证业务正常运行 环境准备 CentOS Linux release 7 5 1804 Co