【数据库】搭建 MMM 以及故障模拟

news2024/11/18 1:30:40

文章目录

  • 搭建 MMM 以及故障模拟
    • 1. 环境配置
    • 2. 搭建 MySQL 多主多从模式
      • 2.1 修改 master01 配置文件
      • 2.2 把配置文件复制到其它 3 台数据库服务器
      • 2.3 配置主主复制,两台主服务器相互复制
      • 2.4 配置主从复制,在两台从服务器上做
    • 3. 安装配置 MySQL-MMM
      • 3.1 安装 MySQL-MMM
      • 3.2 在 master01 上对 MySQL-MMM 进行配置
      • 3.3 把配置文件复制到其它 4 台主机
      • 3.4 修改所有数据库服务器的代理配置文件
      • 3.5 在 monitor 监控服务器上修改监控配置文件
      • 3.6 在所有数据库上为授权
      • 3.7 在所有数据库服务器上启动 mysql-mmm-agent
      • 3.8 在 monitor 服务器上启动 mysql-mmm-monitor
      • 3.9 在 monitor 服务器上测试群集
      • 3.10 故障测试
      • 3.11 客户端测试


搭建 MMM 以及故障模拟

1. 环境配置

master01(db1)			192.168.145.15                 mysql5.7、mysql-mmm
master02(db2)			192.168.145.45                 mysql5.7、mysql-mmm
slave01(db3)			192.168.145.105                mysql5.7、mysql-mmm
slave02(db4)			192.168.145.120                 mysql5.7、mysql-mmm
monitor					 192.168.145.30                 mysql-mmm

systemctl stop firewalld 
setenforce 0

2. 搭建 MySQL 多主多从模式

2.1 修改 master01 配置文件

vim /etc/my.cnf
......
[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1                                               #每台 Mysql 主机的 server-id 不能相同
log-error=/usr/local/mysql/data/mysql_error.log             #错误日志
general_log=ON                                              #通用查询日志
general_log_file=/usr/local/mysql/data/mysql_general.log
slow_query_log=ON                                           #慢查询日志
slow_query_log_file=mysql_slow_query.log
long_query_time=5
binlog-ignore-db=mysql,information_schema        #不需要同步的库名
log_bin=mysql_bin                                #开启二进制日志用于主从数据复制
log_slave_updates=true                           #允许slave从master复制数据时可以写入到自己的二进制日志
sync_binlog=1                            #"双1设置",MySQL 在每写一次二进制日志时都会同步到磁盘中去    
innodb_flush_log_at_trx_commit=1         #"双1设置",每次事务提交时MySQL都会把缓存的数据写入日志文件,并且刷到磁盘中去
auto_increment_increment=2               #自增字段一次递增多少
auto_increment_offset=1                  #自增字段的起始值

在这里插入图片描述

2.2 把配置文件复制到其它 3 台数据库服务器

#注意:配置文件中的 server_id 要修改
scp /etc/my.cnf root@192.168.80.30:/etc/
scp /etc/my.cnf root@192.168.80.13:/etc/
scp /etc/my.cnf root@192.168.80.14:/etc/

systemctl restart mysqld

2.3 配置主主复制,两台主服务器相互复制

#在两台主服务器上都执行授予从的权限,从服务器上不需要执行
grant replication slave on *.* to 'replication'@'192.168.145.%' identified by '123456';
#在两台主服务器上查看,记录日志文件名称和同步点
show master status;

在这里插入图片描述

#在 master01 上配置同步
change master to master_host='192.168.145.45',master_user='replication',master_password='123456',master_log_file='mysql_bin.000001',master_log_pos=461;

start slave;

show slave status\G
    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes

在这里插入图片描述

#在 master02 上配置同步
change master to master_host='192.168.145.15',master_user='replication',master_password='123456',master_log_file='mysql_bin.000001',master_log_pos=461;

start slave;

show slave status\G
    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes

在这里插入图片描述

2.4 配置主从复制,在两台从服务器上做

#配置主从复制,在两台从服务器上做
change master to master_host='192.168.145.15',master_user='replication',master_password='123456',master_log_file='mysql_bin.000001',master_log_pos=461;

start slave;

show slave status\G
    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes

在这里插入图片描述

#测试主主、主从 同步情况
create database test_db;
use test_db;
create table test(id int);
insert into test(id) values (1);

在这里插入图片描述

3. 安装配置 MySQL-MMM

3.1 安装 MySQL-MMM

#在所有服务器上安装 MySQL-MMM
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum -y install epel-release
yum -y install mysql-mmm*

在这里插入图片描述

3.2 在 master01 上对 MySQL-MMM 进行配置

#在 master01 上对 MySQL-MMM 进行配置
cd /etc/mysql-mmm/
vim mmm_common.conf
……
<host default>
    cluster_interface       ens33
    ……
    replication_user        replication
    replication_password    123456
    agent_user              mmm_agent
    agent_password          123456

<host db1>
    ip      192.168.145.15
    mode    master
    peer    db2
</host>

<host db2>
    ip      192.168.145.45
    mode    master
    peer    db1
</host>

<host db3>
    ip      192.168.145.105
    mode    slave
</host>

<host db4>
    ip      192.168.145.120
    mode    slave
</host>

<role writer>
    hosts   db1, db2
    ips     192.168.145.188
    mode    exclusive           #只有一个 host 可以进行写操作模式
</role>

<role reader>
    hosts   db3, db4
    ips     192.168.145.198, 192.168.145.199
    mode    balanced            #多个 slave 主机可以进行读操作模式

在这里插入图片描述

3.3 把配置文件复制到其它 4 台主机

#把配置文件复制到其它 4 台主机,所有主机该配置文件内容都是一样的
scp mmm_common.conf root@192.168.145.45:/etc/mysql-mmm/
scp mmm_common.conf root@192.168.145.105:/etc/mysql-mmm/
scp mmm_common.conf root@192.168.145.120:/etc/mysql-mmm/
scp mmm_common.conf root@192.168.145.30:/etc/mysql-mmm/

在这里插入图片描述

3.4 修改所有数据库服务器的代理配置文件

#修改所有数据库服务器的代理配置文件 mmm_agent.conf
vim /etc/mysql-mmm/mmm_agent.conf
include mmm_common.conf
this db1				#根据不同的主机分别修改为 db1,db2,db3,db4

在这里插入图片描述

3.5 在 monitor 监控服务器上修改监控配置文件

# 在 monitor 监控服务器上修改监控配置文件 mmm_mon.conf
vim /etc/mysql-mmm/mmm_mon.conf
include mmm_common.conf
<monitor>
.....
    ping_ips        	192.168.145.15,192.168.145.45,192.168.145.105,192.168.145.120    #指定所有数据库服务器的 IP
	auto_set_online		10				#指定自动上线时间
</monitor>

<host default>
    monitor_user        mmm_monitor		#指定 mmm_monitor 的用户名
    monitor_password    123456          #指定 mmm_monitor 的密码
</host>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Cv4JcIhu-1687875258515)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230627194125907.png)]

3.6 在所有数据库上为授权

#在所有数据库上为 mmm_agent(代理进程)授权
grant super, replication client, process on *.* to 'mmm_agent'@'192.168.145.%' identified by '123456';


#在所有数据库上为 mmm_moniter(监控进程)授权
grant replication client on *.* to 'mmm_monitor'@'192.168.145.%' identified by '123456';

flush privileges;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZO5oZnxR-1687875258516)(C:\Users\86138\AppData\Roaming\Typora\typora-user-images\image-20230627194405415.png)]

3.7 在所有数据库服务器上启动 mysql-mmm-agent

systemctl start mysql-mmm-agent.service
systemctl enable mysql-mmm-agent.service

在这里插入图片描述

3.8 在 monitor 服务器上启动 mysql-mmm-monitor

systemctl start mysql-mmm-monitor.service  

在这里插入图片描述

3.9 在 monitor 服务器上测试群集

#查看各节点的情况
mmm_control show

#检测监控功能是否都完善,需要各种OK
mmm_control checks all

#指定绑定 VIP 的主机
mmm_control move_role writer db2

在这里插入图片描述

3.10 故障测试

mmm_control move_role writer db1

#停止 master01 确认 VIP 是否移动到 master02 上。注意:master01 主服务器恢复服务后,不会抢占

mmm_control show
  db1(192.168.145.15) master/HARD_OFFLINE. Roles:
  db2(192.168.145.45) master/ONLINE. Roles: writer(192.168.145.188)

#停止一台从服务器,另一台将接管两个虚拟IP,以保证业务不停止
mmm_control show

在这里插入图片描述

3.11 客户端测试

#在 master01 服务器上为 monitor 服务器地址授权登录
grant all on *.* to 'testdba'@'192.168.145.30' identified by '123456';
flush privileges;

在这里插入图片描述

#在 monitor 服务器上使用 VIP 登录
yum install -y mariadb-server mariadb
systemctl start mariadb.service

mysql -utestdba -p -h 192.168.145.188

在这里插入图片描述

#创建数据,测试同步情况
create database testdba;

在这里插入图片描述

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

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

相关文章

流媒体服务器 ZLMediaKit介绍

流媒体服务器是流媒体应用的核心系统&#xff0c;是运营商向用户提供视频服务的关键平台。流媒体服务器的主要功能是对流媒体内容进行采集、缓存、调度和传输播放。流媒体应用系统的主要性能体现都取决于媒体服务器的性能和服务质量。因此&#xff0c;流媒体服务器是流媒体应用…

2023-6-27-第九式外观模式

&#x1f37f;*★,*:.☆(&#xffe3;▽&#xffe3;)/$:*.★* &#x1f37f; &#x1f4a5;&#x1f4a5;&#x1f4a5;欢迎来到&#x1f91e;汤姆&#x1f91e;的csdn博文&#x1f4a5;&#x1f4a5;&#x1f4a5; &#x1f49f;&#x1f49f;喜欢的朋友可以关注一下&#xf…

HBase性能调优(二)

感谢点赞和关注 &#xff0c;每天进步一点点&#xff01;加油&#xff01; 版权声明&#xff1a;本文为CSDN博主「开着拖拉机回家」的原创文章&#xff0c;遵循CC 4.0 BY-SA版权协议&#xff0c;转载请附上原文出处链接及本声明。 Hbase性能调优&#xff08;二&#xff09;_开着…

计算机网络——自顶向下方法(第六章学习记录)

链路层概述 将运行链路层协议的任何设备均称为节点&#xff08;node&#xff09;。节点包括主机、路由器、交换机和WiFi接入点。把沿着通信路径连接相邻节点的通信信道称为链路&#xff08;link&#xff09;。为了将一个数据报从源主机传输到目的主机&#xff0c;数据报必须通…

智慧班牌源码,基于Java+springboot+vue +element-ui+小程序开发

电子班牌系统又称之为智慧班牌&#xff0c;是当前校园数字化信息化建设、文化建设的主流&#xff0c;是校园日常工作安排、校园信息发布、班级文化风采展示、课堂交流、家校互通的重要应用载体。在每个班级门口安装一台电子班牌终端&#xff0c;实现学校日常管理、校园信息化建…

MySQL的MHA高可用

MySQL的MHA高可用 一、MHA简介1、什么是MHA2、MHA的组成3、MHA的特点4、MHA原理图 二、搭建MySQL的MHA高可用1、实验思路2、实验3、故障模拟 一、MHA简介 1、什么是MHA MHA&#xff08;MasterHigh Availability&#xff09;是一套优秀的MySQL高可用环境下故障切换和主从复制的…

jupyter-notebook使用指南

jupyter-notebook使用指南 jupyter-notebook安装[python版][anaconda版] jupyter-notebook如何导出PDF&#xff1f;【没解决&#xff0c;直接看最后&#xff0c;不要跟着操作&#xff01;】正常导出步骤安装Pandoc安装Xelatex问题没解决&#xff0c;懒得安装了&#xff0c;放弃…

6.26学习 es6中的类

学习 es6中的类 1.了解构造函数的属性2.类的继承2.1继承父类实例上的属性2.2继承父类原型上的属性或则方法&#xff08;公共属性或则方法&#xff09;2.2.1 Object.create2.2.2 Object.setPrototypeOf 3.es6中的类3.1定义3.2 继承 1.了解构造函数的属性 先上一份代码思考一下它…

css基础知识十二:CSS3常见动画有哪些?实现方式?

一、是什么 CSS动画&#xff08;CSS Animations&#xff09;是为层叠样式表建议的允许可扩展标记语言&#xff08;XML&#xff09;元素使用CSS的动画的模块 即指元素从一种样式逐渐过渡为另一种样式的过程 常见的动画效果有很多&#xff0c;如平移、旋转、缩放等等&#xff…

服务器技术(三)--Nginx

Nginx介绍 Nginx是什么、适用场景 Nginx是一个高性能的HTTP和反向代理服务器&#xff0c;特点是占有内存少&#xff0c;并发能力强&#xff0c;事实上nginx的并发能力确实在同类型的网页服务器中表现较好。 Nginx专为性能优化而开发&#xff0c;性能是其最重要的考量&#xf…

硬件设计-PLL篇(上)

文章目录 概要整体架构流程技术名词解释技术细节小结 概要 提示&#xff1a;这里可以添加技术概要 锁相环是一种反馈系统&#xff0c;其中电压控制振荡器(VCO) 和相位比较器相互连接&#xff0c;使得振荡器 可以相对于参考信号维持恒定的相位角度。锁相环可用来从固定的低频信…

linux上虚拟机vmware-workstation使用教程

linux上虚拟机vmware-workstation使用教程 一、vmware-workstation安装及卸载二、vmware-workstation基本操作命令4.1 启动和停止服务 本文介绍了在centos上安装vmware-workstation的使用教程。 一、vmware-workstation安装及卸载 本人实战记录&#xff1a;linux上虚拟机vmwa…

数据结构与算法之稀疏数组

稀疏数组 Java 数据结构与算法数据结构简介 稀疏数组&#xff08;sparse array&#xff09;简介二维数组转稀疏数组的思路稀疏数组转为原始的二维数组 Java 数据结构与算法 该学习代码都在&#x1f517;上 数据结构 简介 数据结构包括&#xff1a;线性结构和非线性结构。 线…

多肽药物产业学习笔记

文章目录 0. 背景0.Last 1. 行业初识1.1 行业壁垒1.2 多肽药物的特性及优势1.3 小分子药的特点 多肽药物发现策略多肽药物主要治疗领域罕见病肿瘤 糖尿病(GLP-1 )胃肠道骨科免疫心血管 关于利拉鲁肽X. 几个概念X.1 CXO业务X.1.1 CDMOX.1.2 CMOX.1.3 CRO X.1.4 CMO和CDMO的联系与…

“面试造飞机,上岗拧螺丝“?2023软件测试岗面试真题超全面整理(最新版)

软件测试这个岗位&#xff0c;想要找到一份高薪的工作&#xff0c;离不开繁杂的面试程序&#xff0c;这相信是很多准备应聘软件测试岗的朋友难题&#xff0c;很多已经在职多年的软件测试工程师对于这个岗位面试都谈虎色变&#xff0c;那么&#xff0c;为什么软件测试岗位的面试…

接口测试的目的

目录 前言&#xff1a; 1、接口测试可以确保系统功能的正确性。 2、接口测试可以保证系统的可靠性。 3、接口测试有助于为客户提供最佳的用户体验。 4、接口测试还可以帮助开发人员评估系统的性能。 5、接口测试可以帮助团队提高协作效率。 前言&#xff1a; 接口测试是…

基于STM32设计的汽车修理厂环境监测系统(华为云IOT)

一、前言 生产车间的环境质量监测仅靠传统的手持式仪器仪表及手工记录无法保证数据的即时性和准确性。因此,设计并实现了一种综合传感器技术、无线通信技术和移动应用开发技术的车间环境质量监测系统。 本系统以STM32为主控芯片,外接各种传感器模块采集环境信息,并将采集数…

Windows 下后台启动 jar 包,UTF-8 启动 jar 包

目录 1. Windows 下启动 jar 包2. 设置 cmd 编码3. UTF-8 编码启动 jar 包 1. Windows 下启动 jar 包 前台启动 jar 包&#xff1a; java -jar xxx.jar后台启动 jar 包&#xff1a; javaw -jar xxx.jar后台启动 jar 包脚本&#xff08;start.bat&#xff09;&#xff1a; e…

Django框架之邮件系统,涉及HTML、富文本、附件邮件发送

参考 (892条消息) Django框架之邮件系统&#xff0c;涉及HTML、富文本、附件邮件发送_django邮件系统_李恩泽的技术博客的博客-CSDN博客https://blog.csdn.net/heroiclee/article/details/121406488 发送设置&#xff08;settings.py&#xff09; EMAIL_USE_SSL True # Sec…

通俗易懂讲解CPU、GPU、FPGA的特点

1. CPU vs GPU 大家可以简单的将CPU理解为学识渊博的教授&#xff0c;什么都精通&#xff1b;而GPU则是一堆小学生&#xff0c;只会简单的算数运算。可即使教授再神通广大&#xff0c;也不能一秒钟内计算出500次加减法。因此&#xff0c;对简单重复的计算来说&#xff0c;单单一…