首页 / 日本VPS推荐 / 正文
MySQL-MMM高可用架构的搭建与应用,mysqlmmm工作原理

Time:2025年01月07日 Read:7 评论:42 作者:y21dr45

在当今信息化时代,数据的重要性不言而喻,作为世界上最流行的开源数据库管理系统之一,MySQL广泛应用于各类企业的核心业务系统中,随着业务的不断增长和复杂化,数据库的高可用性成为系统稳定运行的关键,本文将详细介绍如何使用MySQL-MMM(Master-Master replication manager for MySQL)搭建高可用架构,旨在提供一套有效的解决方案以确保系统的持续稳定运行。

MySQL-MMM高可用架构的搭建与应用,mysqlmmm工作原理

目录

1、MMM简介

2、MMM高可用架构说明

3、搭建MySQL-MMM

3.1 实验准备

3.2 搭建MySQL多主多从模式

3.2.1 配置主主复制

3.2.2 配置主从复制

3.2.3 测试主主、主从同步情况

3.3 安装配置MySQL-MMM

3.3.1 在所有服务器上安装MySQL-MMM

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

3.3.3 修改所有数据库服务器的代理配置文件mmm_agent.conf

3.3.4 在monitor监控服务器上修改监控配置文件mmm_mon.conf

3.3.5 在所有数据库上为mmm_agent(代理进程)授权

3.3.6 在所有数据库上为mmm_moniter(监控进程)授权

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

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

3.3.9 在monitor服务器上测试群集

4、故障测试

5、客户端测试

6、总结

MMM简介

MMM即Master-Master replication manager for MySQL,是一套由Perl编写的用于管理和监控MySQL复制的脚本集合,它主要用来监控和管理MySQL Master-Master(双主)复制,虽然被称为双主复制,但在同一时刻,只允许一个主库提供写操作,另一个备选主库则提供读操作,以加速主主切换时的预热,MMM也提供了一些工具脚本来实现虚拟IP管理、备份和节点间的数据同步等功能。

MMM高可用架构说明

MMM高可用架构通过多个组件协同工作,实现了高可用性和数据的一致性:

1、监控管理器(mmm_mond):负责所有的监控工作,决定和处理所有节点角色活动,此脚本需要在监控主机上运行。

2、代理进程(mmm_agentd):运行在每个MySQL服务器上的代理进程,完成监控的探针工作和执行简单的远端服务设置,此脚本需要在被监管机上运行。

3、控制脚本(mmm_control):一个简单的脚本,提供管理mmm_mon进程的命令。

MMM通过这些组件实现自动故障检测和转移,确保在任意时刻都有一个主库对外提供写操作,其他从库同步数据并提供读操作。

搭建MySQL-MMM

3.1 实验准备

我们准备了以下硬件和软件环境:

- 五台Linux服务器(四台用于MySQL数据库,一台用于监控)

- MySQL版本:5.7

- MMM版本:最新版本

服务器信息如下:

- master01(db1):192.168.80.11

- master02(db2):192.168.80.12

- slave01(db3):192.168.80.13

- slave02(db4):192.168.80.14

- monitor(监控服务器):192.168.80.15

3.2 搭建MySQL多主多从模式

3.2.1 配置主主复制

在master01和master02上配置主主复制,具体步骤如下:

1、停止防火墙:

   systemctl stop firewalld

2、修改MySQL配置文件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  # 自增字段的起始值

3、将配置文件复制到其他三台数据库服务器并启动服务器:

   scp /etc/my.cnf root@db[2-4]:/etc/my.cnf

3.2.2 配置主从复制

在两台主库上分别配置两台从库:

1、在master01和master02上创建复制用户:

   CREATE USER 'repl'@'%' IDENTIFIED BY 'repl123';
   GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
   FLUSH PRIVILEGES;

2、在从库slave01和slave02上配置连接主库:

   [mysqld]
   master-host=192.168.80.11,port=3306,user=repl;password=repl123

3.2.3 测试主主、主从同步情况

1、查看主库和从库的二进制日志和IO线程状态:

   SHOW MASTER STATUS\G;
   SHOW SLAVE STATUS\G;

2、确保主从复制正常,可以通过以下命令查看从库的复制延迟:

   SHOW SLAVE STATUS\G;

3.3 安装配置MySQL-MMM

3.3.1 在所有服务器上安装MySQL-MMM

下载并安装MMM:

wget http://www.mysql-mmm.org/Downloads/mysql-mmm-2.6.2.tar.gz
tar zxvf mysql-mmm-2.6.2.tar.gz -C /usr/local/

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

编辑mmm_common.cnf文件:

[default]
mmm_pid=/tmp/mmm_mond.pid
mmm_user=mmm_user
mmm_group=mmm_group
log_basename=/var/log/mmm_mond.log
log_level=info
using_logrotate=yes
log_archive=untar+gz
log_gzip=5
log_archive_older=7
log_archive_count=5
log_archive_size=100m
log_archive_nocompress=no

3.3.3 修改所有数据库服务器的代理配置文件mmm_agent.conf

编辑mmm_agent.cnf文件:

[default]
mmm_pid=/tmp/mmm_agentd.

标签: mysql-mmm 
排行榜
关于我们
「好主机」服务器测评网专注于为用户提供专业、真实的服务器评测与高性价比推荐。我们通过硬核性能测试、稳定性追踪及用户真实评价,帮助企业和个人用户快速找到最适合的服务器解决方案。无论是云服务器、物理服务器还是企业级服务器,好主机都是您值得信赖的选购指南!
快捷菜单1
服务器测评
VPS测评
VPS测评
服务器资讯
服务器资讯
扫码关注
鲁ICP备2022041413号-1