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

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.hqwc.cn/news/1580.html

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

相关文章

【探索 Kubernetes|作业管理篇 系列 9】Pod 的服务对象

前言 大家好&#xff0c;我是秋意零。 在上一篇中&#xff0c;我们介绍了 Pod 的生命周期以及区分 Pod 字段的层次级别&#xff0c;相信你对此有了充分的认识。 今天&#xff0c;我们还会接着以 Pod 展开&#xff0c;说说它的 “服务对象”&#xff0c;一听就知道是对 Pod 提…

Vuforia专题:设置AR摄像头自动对焦

Vuforia专题&#xff1a;设置AR摄像头自动对焦 一&#xff0c;前言 在之前使用的时候&#xff0c;如果没有设置自动对焦可以发现&#xff0c;摄像头画面极其模糊。并导致识别的结果不是很理想 加上自动对焦后的效果如下&#xff1a; 二、具体步骤 1、ARCamera添加脚本Cam…

嵌入式中C++开发的基本操作方法

第一&#xff1a;面向对象 1、配置环境 虚拟机上网&#xff08;ping www.baidu.com&#xff09;sudo apt-get update //更新软件包sudo apt-get install -f //更新软件依赖sudo apt-get install g //安装c编译器 2、C发展 c98,第一版 c03,c11,c17 3、为什么学习C 4、面向对…

计算机网络——网络层

序言 计算机网络中的网络层在当今的社会起到了什么作用&#xff1f; 现在的互联网通信&#xff0c;远程办公和远程教育&#xff0c;电子商务和在线服务&#xff0c;信息共享和社交媒体&#xff0c;物联网和智能家居都是通过网络层才能使用的。它连接了人们、设备和信息&#xf…

MyBatis 执行流程详解及示例代码

导言&#xff1a; MyBatis 是一个优秀的持久层框架&#xff0c;它简化了数据库操作的开发过程。本文将详细介绍 MyBatis 的执行流程&#xff0c;并提供相应的示例代码&#xff0c;帮助读者更好地理解和应用 MyBatis。 1. 创建 SqlSessionFactoryBuilder 对象 在 MyBatis 中&…

【SpringCloud学习笔记】gateway网关

gateway网关 核心概念&#xff1a; 路由&#xff08;route&#xff09;&#xff1a;路由信息由 D、目标 RI、一组断言和一组过滤器组成。如果断言路由为真&#xff0c;则说明请求的 URI 和配配断言&#xff08;predicate&#xff09;&#xff1a; Java8 中的断言函数&#xf…

总结911

目标规划&#xff1a; 月目标&#xff1a;6月&#xff08;线性代数强化9讲&#xff0c;考研核心词过三遍&#xff09; 周目标&#xff1a;线性代数强化5讲&#xff0c;英语背3篇文章并回诵&#xff0c;检测 每日规划 今日已做 1.回诵之前文章 2.每日长难句&#xff0c;句句…

人工智能(1):机器学习工作流程

1 什么是机器学习 机器学习是从数据中自动分析获得模型&#xff0c;并利用模型对未知数据进行预测。 2 机器学习工作流程 机器学习工作流程总结 1 获取数据 2 数据基本处理 3 特征工程 4 机器学习(模型训练) 5 模型评估 结果达到要求&#xff0c;上线服务没有达到要求&a…

1.2g可视化大屏项目分享【包含数字孪生、视频监控、智慧城市、智慧交通等】

1.2g可视化大屏项目分享【包含数字孪生、视频监控、智慧城市、智慧交通等】 链接&#xff1a;https://pan.baidu.com/s/1KSNll7b6bVoVPPqcQmNKeQ 提取码&#xff1a;w13x

计算机组成原理(期末或考研备考)-计算机系统概述重点

1.1计算机发展历程 讲解视频&#xff1a; https://www.bilibili.com/video/BV15s4y1F7eC/?spm_id_from333.999.0.0 1946第一台电子数字计算机(ENIAC)第一代计算机&#xff08;1946-1957&#xff09;-- 电子管&#xff1b;体积大&#xff0c;容量小&#xff0c;成本高&#x…

Tomcat的部署和优化

目录 一、Tomcat简介 二、Tomcat 的构成 三、Tomcat 功能组件结构 四、Tomcat 请求过程 五、Tomcat 服务部署 六、Tomcat 虚拟主机配置 七、Tomcat优化 1.Tomcat 配置文件参数优化 2.JVM优化 一、Tomcat简介 Tomcat 是 Java 语言开发的&#xff0c;Tomcat 服务器是一个…

03 Web全栈 浏览器内置对象/事件/ajax

浏览器是一个JS的运行时环境&#xff0c;它基于JS解析器的同时&#xff0c;增加了许多环境相关的内容&#xff0c;用一张图表示各个运行环境和JS解析器的关系如下&#xff1a; 我们把常见的&#xff0c;能够用JS这门语言控制的内容称为一个JS的运行环境&#xff0c;常见的运行环…