【数据库】mysql架构之MMM,高可用同时实现读写分离

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS Agent(兼容OpenClaw),2核4GB
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介: 文章目录前言一、mmm架构1.0 思路1.1 架构

一、mmm架构

1.0 思路

  • 主从复制:先安装数据库–>主服务器授权,刷新授权–>从节点同步配置(需先获得主的文件名及偏移量)
  • 注:两个主需要互相做主从,为了故障转换之后数据能继续同步

1.1 架构

作用 IP地址 安装服务
主负载均衡器 192.168.13.10 mmm/mysql5.7
备负载均衡器 192.168.13.20 mmm/mysql5.7
节点服务器1 192.168.13.30 mmm/mysql5.7
节点服务器2 192.168.13.40 mmm/mysql5.7
monitor监控节点 192.168.13.50 mmm

1.2 主负载均衡

systemctl stop firewalld
setenforce 0
vim /etc/my.cnf
  server-id = 1
  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
  sync_binlog=1
  innodb_flush_log_at_trx_commit=1
  auto_increment_increment=2
  auto_increment_offset=1
scp /etc/my.cnf root@192.168.13.20:/etc/
scp /etc/my.cnf root@192.168.13.30:/etc/
scp /etc/my.cnf root@192.168.13.40:/etc/
systemctl restart mysqld
mysql -uroot -pabc123
  grant replication slave on *.* to 'replication'@'192.168.13.%' identified by '123456';
  show master status;
  #此处获得二进制日志文件名及偏移量,其他服务器配置主从复制时候需要
  grant super, replication client, process on *.* to 'mmm_agent'@'192.168.13.%' identified by '123456';
  grant replication client on *.* to 'mmm_monitor'@'192.168.13.%' identified by '123456';
  flush privileges;
  #为monitor服务器授权
  change master to master_host='192.168.13.20',master_user='replication',master_password='123456',master_log_file='mysql_bin.000001',master_log_pos=460;
  #此时的二进制文件名与偏移量是从master2获得的,原因:当故障转移后,能够和新主保持主从复制(可以先不执行这一步,等操作完master2再回来授权)
  show slave status\G
  #查看主从同步是够配置成功
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*
cd /etc/mysql-mmm/
vim mmm_common.conf
  4行:cluster_interface       ens33
  8行:replication_password    123456
  10行:agent_password          123456
  14行:ip      192.168.13.10
  20行:ip      192.168.13.20
  26行:ip      192.168.13.30
  24-28行复制:24,,28 co 28
  31行:ip      192.168.13.40
  35行:hosts   db1, db2
  37行:ips     192.168.13.188
  41行:hosts   db3, db4
  43行:ips     192.168.13.198, 192.168.13.199
scp mmm_common.conf root@192.168.13.20:/etc/mysql-mmm/
scp mmm_common.conf root@192.168.13.30:/etc/mysql-mmm/
scp mmm_common.conf root@192.168.13.40:/etc/mysql-mmm/
scp mmm_common.conf root@192.168.13.50:/etc/mysql-mmm/
systemctl start mysql-mmm-agent.service
systemctl enable mysql-mmm-agent.service

1.3 备负载均衡器

systemctl stop firewalld
setenforce 0
vim /etc/my.cnf
  server-id = 2
systemctl restart mysqld.service
mysql -u root -pabc123
  grant replication slave on *.* to 'replication'@'192.168.13.%' identified by '123456';
  show master status;
  #此处获得二进制日志文件名及偏移量,为了给master1使用
  change master to master_host='192.168.13.20',master_user='replication',master_password='123456',master_log_file='mysql_bin.000001',master_log_pos=460;
  #此时的二进制文件名与偏移量是从master1获得的,原因:为了保持数据一致性,随时可以进行故障转移
  grant super, replication client, process on *.* to 'mmm_agent'@'192.168.13.%' identified by '123456';
  grant replication client on *.* to 'mmm_monitor'@'192.168.13.%' identified by '123456';
  flush privileges;
  #为monitor服务器授权
  show slave status\G
  #查看主从同步是够配置成功
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*
vim /etc/mysql-mmm/mmm_agent.conf
  6行:this db2
systemctl start mysql-mmm-agent.service
systemctl enable mysql-mmm-agent.service

1.4 从服务器

systemctl stop firewalld
setenforce 0
vim /etc/my.cnf
  server-id = 3
systemctl restart mysqld.service
mysql -u root -pabc123
  change master to master_host='192.168.13.10',master_user='replication',master_password='123456',master_log_file='mysql_bin.000001',master_log_pos=460;
  #与master1保持主从复制
  grant super, replication client, process on *.* to 'mmm_agent'@'192.168.13.%' identified by '123456';
  grant replication client on *.* to 'mmm_monitor'@'192.168.13.%' identified by '123456';
  flush privileges;
  #为monitor服务器授权
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*
vim /etc/mysql-mmm/mmm_agent.conf
  6行:this db3
systemctl start mysql-mmm-agent.service
systemctl enable mysql-mmm-agent.service
#另外一台从服务器重复此操作,server-id = 4,6行:this db4。修改这两项即可

1.5 monitor服务器

systemctl stop firewalld
setenforce 0
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*
vim /etc/mysql-mmm/mmm_mon.conf
  8行:ping_ips        192.168.13.10,192.168.13.20,192.168.13.30,192.168.13.40
  9行:auto_set_online     10
  20行:monitor_user        mmm_monitor
  21行:onitor_password    123456
systemctl restart mysql-mmm-monitor.service
mmm_control show
#检查各节点的情况,正确显示如下
  db1(192.168.13.10) master/ONLINE. Roles: writer(192.168.13.188)
  db2(192.168.13.20) master/ONLINE. Roles: 
  db3(192.168.13.30) slave/ONLINE. Roles: reader(192.168.13.198)
  db4(192.168.13.40) slave/ONLINE. Roles: reader(192.168.13.199)
#mmm高可用搭建完毕
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
9月前
|
运维 监控 关系型数据库
MySQL高可用方案:MHA与Galera Cluster对比
本文深入对比了MySQL高可用方案MHA与Galera Cluster的架构原理及适用场景。MHA适用于读写分离、集中写入的场景,具备高效写性能与简单运维优势;而Galera Cluster提供强一致性与多主写入能力,适合对数据一致性要求严格的业务。通过架构对比、性能分析及运维复杂度评估,帮助读者根据自身业务需求选择最合适的高可用方案。
|
9月前
|
SQL 监控 关系型数据库
MySQL主从复制:构建高可用架构
本文深入解析MySQL主从复制原理与实战配置,涵盖复制架构、监控管理、高可用设计及性能优化,助你构建企业级数据库高可用方案。
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
9月前
|
SQL 弹性计算 关系型数据库
如何用读写分离构建高效稳定的数据库架构?
在少写多读业务场景中,主实例读请求压力大,影响性能。通过创建只读实例并使用数据库代理实现读写分离,可有效降低主实例负载,提升系统性能与可用性。本文详解配置步骤,助你构建高效稳定的数据库架构。
|
12月前
|
关系型数据库 MySQL 分布式数据库
Super MySQL|揭秘PolarDB全异步执行架构,高并发场景性能利器
阿里云瑶池旗下的云原生数据库PolarDB MySQL版设计了基于协程的全异步执行架构,实现鉴权、事务提交、锁等待等核心逻辑的异步化执行,这是业界首个真正意义上实现全异步执行架构的MySQL数据库产品,显著提升了PolarDB MySQL的高并发处理能力,其中通用写入性能提升超过70%,长尾延迟降低60%以上。
|
负载均衡 算法 关系型数据库
大数据新视界--大数据大厂之MySQL数据库课程设计:MySQL集群架构负载均衡故障排除与解决方案
本文深入探讨 MySQL 集群架构负载均衡的常见故障及排除方法。涵盖请求分配不均、节点无法响应、负载均衡器故障等现象,介绍多种负载均衡算法及故障排除步骤,包括检查负载均衡器状态、调整算法、诊断修复节点故障等。还阐述了预防措施与确保系统稳定性的方法,如定期监控维护、备份恢复策略、团队协作与知识管理等。为确保 MySQL 数据库系统高可用性提供全面指导。
|
SQL 缓存 NoSQL
MySQL架构与SQL的执行流程_2
MySQL架构与SQL的执行流程_2
280 0
MySQL架构与SQL的执行流程_2
|
SQL 缓存 网络协议
MySQL架构与SQL的执行流程_1
MySQL架构与SQL的执行流程_1
261 0
MySQL架构与SQL的执行流程_1
|
9月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
553 158
|
9月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。

推荐镜像

更多