【DBA专属】mysql-------->>>MMM高可用集群架构

news2025/1/12 13:31:44

Mysql---MMM高可用集群架构

目录

MMM安装部署

环境配置:(所有主机配置)

1、主机信息

2、关闭防火墙

3、同步时区

4、配置主机解析文件

5、配置ssh免密登录

6、所有机器安装epel源

数据库配置:

【所有数据库均做的配置】

1、安装四台数据库并修改密码

2、修改数据库配置文件/etc/my.cnf

3、启动服务

【主库1和备用主库2配置】

设置主库1和备用主库互为主从

1.查看日志文件

2.互相授权从用户

3.都关闭从

4.都设置为主库

5.创建库互相验证

【从库1和从库2配置】

从库1和从库2都设为主库1的从库

1.都关闭从stop slave;

2.都设置成主1的从库

3.开启从start slave;

4.查看状态show slave status\G

5.创建库互相验证

【高可用配置】

所有数据库配置:【huyang1/2/3/4】

1.在所有数据库授权使monitor可以访问

2.所有主机安装

3. 所有主机修改配置文件

4.所有服务器修改角色和配置文件里对应上

5.所有数据库启动mysql agent代理服务

【监视器配置】

1.修改监控主机配置文件

2.监视器启动监控

3.查看状态

4.查看监控状态

5.手动切换状态

【结果测试】

【停止主库的mariadb服务】

1.查看其他库变化

2.在备用主库2上新建库

【重启主库1】

1.查看其他库变化

【停止备用主库2的服务】

结果总结:


MMM安装部署

环境配置:(所有主机配置)

1、主机信息

作  用

Ip地址

主机名

主库1

192.168.59.137

huyang1

备用主库2

192.168.59.138

huyang2

从库1

192.168.59.140

huyang3

从库2

192.168.59.142

huyang4

监视器

192.168.59.144

huyang5

2、关闭防火墙

systemctl stop firewalld

iptables -F

setenforce 0

3、同步时区

【huyang1/2/3/4/5/】yum -y install ntp

【huyang1】systemctl  start  ntpd

【huyang1/2/3/4/5/】ntpdate  huyang1

4、配置主机解析文件

【huyang1】vim /etc/hosts

输入信息:192.168.59.137 huyang1

192.168.59.138 huyang2

192.168.59.140 huyang3

192.168.59.142 huyang4

192.168.59.144 huyang5

【huyang1】scp /etc/hosts  huyang1/2/3/4/5:/etc/hosts

5、配置ssh免密登录

【huyang1/2/3/4/5】

ssh-keygen -t rsa

ssh-copy-id -i .ssh/id_rsa.pub root@huyang5

【huyang5】cat /root/.ssh/authorized_keys

scp .ssh/authorized_keys root@huyang1:.ssh/

scp .ssh/authorized_keys root@huyang2:.ssh/

scp .ssh/authorized_keys root@huyang3:.ssh/

scp .ssh/authorized_keys root@huyang4:.ssh/

【huyang1】生成密钥对传给其他数据库,连接测试

ssh huyang1

ssh huyang2

ssh huyang3

ssh huyang4

ssh huyang5

因为第一次连接的时候需要输入yes

影响后期故障切换时,对于每个主机的SSH控制

6、所有机器安装epel源

yum -y install epel-release

数据库配置:

【所有数据库均做的配置】

1、安装四台数据库并修改密码

yum -y install mariadb mariadb-server mariadb-devel

systemctl start mariadb

mysqladmin -u root password 123456

2、修改数据库配置文件/etc/my.cnf

vim /etc/my.cnf

主库1:

server-id=1

log-bin=mysql-bin

log-slave-updates=true

relay-log=relay-log-bin

relay-log-index=relay-log-bin.index

备用主库2:

server-id=2

log-bin=mysql-bin

log-slave-updates=true

relay-log=relay-log-bin

relay-log-index=relay-log-bin.index

从库1:

server-id=3

relay-log=relay-log-bin

relay-log-index=relay-log-bin.index

从库2:

server-id=4

relay-log=relay-log-bin

relay-log-index=relay-log-bin.index

3、启动服务

重启服务:systemctl restart mariadb

登录:mysqlmysql -uroot -p123456

【主库1和备用主库2配置】

设置主库1和备用主库互为主从

1.查看日志文件

show master status

2.互相授权从用户

【huyang1】grant replication slave on *.* to

'replication'@'192.168.59.%' identified by '123456';

flush privileges;

【huyang2】grant replication slave on *.* to

'replication'@'192.168.59.%' identified by '123456';

flush privileges;

3.都关闭从

stop slave;

4.都设置为主库

【huyang1】change master to

master_host='192.168.59.138',master_user='replication',master_password='123456',master_log_file='master-bin.000003',master_log_pos=245;

【huyang2】change master to

master_host='192.168.59.137',master_user='replication',master_password='123456',master_log_file='master-bin.000001',master_log_pos=345;

开启从start slave;

查看状态show slave status\G

5.创建库互相验证

create database huyang1

show databases;

【从库1和从库2配置】

从库1和从库2都设为主库1的从库

1.都关闭从stop slave;

2.都设置成主1的从库

change master to

master_host='192.168.59.137',master_user='replication',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=245;

3.开启从start slave;

4.查看状态show slave status\G

5.创建库互相验证

create database HUYANG1

show databases;

【高可用配置】

所有数据库配置:【huyang1/2/3/4】

1.在所有数据库授权使monitor可以访问

grant super, replication client, process on *.* to 'mmm_agent'@'192.168.59.%' identified by '123456';

super:超级权限

replication client:客户端复制管理权限

process on:进程管理

2.所有主机安装

yum -y install mysql-mmm*

3. 所有主机修改配置文件

vim /etc/mysql-mmm/mmm_common.conf

cluster_interface       ens33  网卡

replication_user        replication  复制用户

replication_password    123456  复制用户的密码

agent_user              mmm_agent  管理用户

agent_password          123456  管理用户的密码

</host>设置的管理用户

详细配置如下图:

4.所有服务器修改角色和配置文件里对应上

 vim /etc/mysql-mmm/mmm_agent.conf

分别改为huyang1、huyang2、huyang3、huyang4

5.所有数据库启动mysql agent代理服务

 systemctl start mysql-mmm-agent

【监视器配置】

1.修改监控主机配置文件

vim /etc/mysql-mmm/mmm_mon.conf

ping_ips  后面跟上所有服务器的真实ip

<host default>

   monitor_user        mmm_agent  管理用户

    monitor_password    123456授权账户和密码

</host>

详细配置如下图:

2.监视器启动监控

systemctl start mysql-mmm-monitor

3.查看状态

mmm_control show

4.查看监控状态

mmm_control checks all

5.手动切换状态

mmm_control move_role writer huyang1

【结果测试】

【停止主库的mariadb服务】

systemctl stop mariadb

1.查看其他库变化

【监视器】mmm_control show

vip地址:192.168.59.143由主库变到了备用主库2上

【huyang3/4】show slave status\G;

【huyang2】show slave status\G;

2.在备用主库2上新建库

Create database huyang1

以下图为例:

可以发现备用主库2虽然新建了库huyang1,但是从库1和从库2没有发生变化

【重启主库1】

【huyang1】systemctl start mariadb

1.查看其他库变化

【监视器变化】mmm_control show

vip地址:没有变化

【huyang3/4】show slave status\G;

重新连接上了主库1

【huyang2】show slave status\G;

【停止备用主库2的服务】

【huyang2】systemctl start mariadb

【监视器变化】mmm_control show

vip地址:192.168.59.143由主库变到了主库1上

【huyang3/4】show slave status\G;

【huyang1/3/4】show databases;

可以发现当初在备用主库2上新建的库huyang1,此时出现在了【huayng1/3/4】数据库内

结果总结:

1.在切换主从的过程中查看结果较慢;

2.当第一个主服务停止之后,第二个服务器会成为主,但是查看状态会报错,因为一开始指定的就是第一个服务器;

3.虽然在主库1宕机之后,备用主库2和从库3从库4明面上没有产生主从复制的效果,但是在主库1恢复之后,手动停止备用主库2的服务,vip会将之前在备用主库2上的产生的数据,转移给主库1,并复制到从库1和从库2上,以保证数据的同步,这就是mysql---MMM高可用集群架构的意义!

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

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

相关文章

蜣螂优化算法(DBO)优化VMD参数,最小包络熵、样本熵、信息熵、排列熵(适应度函数可自行选择,一键修改)包含MATLAB源代码

蜣螂优化算法是华大学沈波教授团队&#xff0c;继麻雀搜索算法(Sparrow Search Algorithm&#xff0c;SSA&#xff09;之后&#xff0c;于2022年11月27日又提出的一种全新的群体智能优化算法。已有很多学者将算法用于实际工程问题中&#xff0c;今天咱们用蜣螂优化算法优化一下…

技术干货——Selenium Python使用技巧(二)

目录 进行自动跨浏览器测试 使用CSS定位器 WebElement的HTML源代码 鼠标悬停 关闭标签而不是浏览器 处理下拉菜单 复选框处理 通过CSS选择器选择元素 总结&#xff1a; 进行自动跨浏览器测试 您可能需要在多种情况下针对不同的浏览器&#xff08;例如Firefox&#xff…

软件测试工程师的工作内容?告诉你们什么是真正的测试工程师

目录 前言 1.何为软件测试工程师&#xff1f; 2.软件测试工程师的职责&#xff1f; 3.为什么要做软件测试&#xff1f; 4.软件测试的前途如何&#xff1f; 5.工具和思维谁更重要&#xff1f; 6.测试和开发相差大吗&#xff1f; 7.成为测试工程师的必备条件 8.测试的分…

shiro和redis一起使用

Shiro 缓存配置 当我们进行授权操作时,每次都会从数据库查询用户权限信息,为了提高授权性能,可以将用户权限信息查询出来以后进行缓存,下次授权时从缓存取数据即可。 Shiro 中内置缓存应用实现,其步骤如下: 第一步:在 SpringShiroConfig 中配置缓存 Bean 对象(Shiro 框架提供)…

Talk | 阿姆斯特丹大学博士生胡涛:计算机视觉中的标签效率学习

本期为TechBeat人工智能社区第509期线上Talk&#xff01; 北京时间6月29日(周四)20:00&#xff0c;阿姆斯特丹大学博士生—胡涛的Talk将准时在TechBeat人工智能社区开播&#xff01; 他与大家分享的主题是: “计算机视觉中的标签效率学习”&#xff0c;届时将从生成式学习、数…

Drools用户手册翻译——第二章 入门(上)

因为篇幅原因&#xff0c;所以分为上下两个部分&#xff0c;主要就是通过一个交通违章项目的例子&#xff0c;带你先粗略感受一下决策模型的使用流程&#xff0c;总体来说有详细&#xff0c;也有没说清的地方&#xff0c;如果想要了解一下决策模型&#xff0c;可以进来了解一下…

试用有奖:在线试用stable diffusion 模型生成优质人物好图

一、活动介绍 InsCode是一个集成了在线IDE、在线AI编程、在线算力租赁、在线项目部署以及在线SD 模型使用的综合代码开发平台。不论你是初级软件工程师&#xff0c;还是AI大模型爱好者&#xff0c;InsCode都能帮助你快速编写代码&#xff0c;运行项目。甚至在这里你还可以一键…

某平台登录之电话号码加密

抓包 POST /******/common/****** HTTP/1.1 Host: ****** Content-Type: application/json; charsetUTF-8 Host: ****** User-Agent: okhttp/3.14.9{"type":"login","apor":"******************"}加密 由于信息原因就不泄露了 此处只…

Linux系统编程:进程的创建、终止和替换

目录 一. 进程创建 1.1 fork函数的使用 1.2 fork函数的底层实现 1.3 子进程创建的写时拷贝问题 二. 进程的退出 2.1 进程退出的场景和方法 2.2 exit和_exit函数 三. 进程的等待 3.1 为什么要有进程等待 3.2 进程等待的方法 3.2.1 进程等待的相关函数 3.2.2 进程的阻…

JS知识点汇总(六)--作用域链this

1. 什么是作用域链&#xff1f; 作用域&#xff0c;即变量&#xff08;变量作用域又称上下文&#xff09;和函数生效&#xff08;能被访问&#xff09;的区域或集合 换句话说&#xff0c;作用域决定了代码区块中变量和其他资源的可见性 1. 作用域分类 一般将作用域分成&#x…

TDengine 发布 IoT 场景下 3.0 性能对比分析报告,全方位超越 InfluxDB TimescaleDB

6 月 26 日&#xff0c;涛思数据旗下时序数据库&#xff08;Time Series Database&#xff09; TDengine 正式发布 IoT 场景下 TDengine 3.0 性能对比分析报告&#xff0c;该报告在 IoT 场景下从数据写入、压缩和查询等维度&#xff0c;对比了 TDengine 与市场其他流行的时序数…

Linux系统安装QQ最新版

腾讯在2023-05-30更新了linux版的qq&#xff0c;这次界面终于不再复古&#xff0c;好看多了。 安装步骤&#xff1a; 1.进入官网&#xff0c;寻找合适的安装包下载 https://im.qq.com/linuxqq/index.shtml 选择跟自己计算机匹配的版本&#xff0c;一般都是X86&#xff0c;如…

VMware共享文件夹

当虚拟机需要使用宿主机里的文件时&#xff0c;就需要在虚拟机设置里添加共享文件夹&#xff0c;大概过程如下&#xff1a; 虚拟机设置&#xff1a; 在centos里&#xff0c;完成上述操作后会生成一个目录 /mnt/hgfs 宿主机里的文件就在这个目录里可以看到并使用了。

编译linux内核(二)

编译linux内核 1. 准备工作1.1 下载内核文件1.2 环境准备1.3 内核命名规则 2. 编译内核2.1 升级gcc2.2 make menuconfig其他报错2.3 配置选项2.4 编译内核2.5 安装模块2.6 安装内核2.7 验证内核 3. 制作内核文件3.1 创建磁盘文件3.2 磁盘分区3.3 将磁盘分区关联到/dev/loop7设备…

化学理论知识vr沉浸式教学软件推动立足“学生老师双主体”一体化的教学模式改革

VR虚拟仿真是基于虚拟现实、3D技术、计算机技术等搭建起来的一套具有数字化、智慧化的智能教学系统&#xff0c;它以学生学习为中心&#xff0c;探索学科内容&#xff0c;使用VR虚拟现实将学科内容以3D立体化形式呈现&#xff0c;培养学生的思维创新、实操技能。 VR虚拟仿真技术…

【数据库基础】Mysql基本概念讲解与实操

文章目录 数据库基础服务器&#xff0c;数据库&#xff0c;表关系Mysql的架构Sql分类 库的操作修改默认的编码格式两种校验修改数据库删除数据库备份和恢复观察用户&#xff0c;查看连接 表的操作修改表字段长度删除某一列修改表名修改列名称 数据类型小数类型floatdecimal字符…

Hystrix

一、Hystrix(豪猪)简介 1、Hystrix的设计目的 &#xff08;1&#xff09;对依赖服务调用时出现的调用延迟和调用失败进行控制和容错保护。 &#xff08;2&#xff09;阻止某一个依赖服务的故障在整个系统中蔓延&#xff0c;服务A->服务B->服务C&#xff0c;服务C故障了…

MySQL - Delete 和 Truncate 的区别

1. DELETE 命令 语法 &#xff1a; delete from 表名 [where 条件] -- 删除数据 (避免这样写, 会全部删除) DELETE FROM student;-- 删除指定数据 DELETE FROM student WHERE id 1; 2. TRUNCATE 命令 作用 : 完全清空一个数据库表, 表的结构和索引约束不会变. -- 清空 stu…

大体积mbtiles影像地图文件用什么软件浏览?

mbtiles格式简称mbt&#xff0c;是一种影像地图文件。PC端和手机端都有软件可以加载留着mbt格式的影像地图。 电脑桌面端 电脑端上的软件可以使用“图新地球”&#xff0c;直接把mbt文件拖到地图上即可&#xff0c;非常简便。 手机端 可以从华为应用商店下载“外业精灵”app…

Meta提出用向量检索来改进图像描述模型

出品人&#xff1a;Towhee 技术团队 作者&#xff1a;王翔宇 顾梦佳 随着深度神经网络的发展&#xff0c;自动图像描述技术取得了令人瞩目的进展。然而&#xff0c;现有的方法主要注重生成的描述与人类参考描述之间的相似性&#xff0c;却忽视了描述在实际应用中的特定目标。Me…