一、MySQL-MMM介绍
MMM (Multi-Master Replication Manager for MySQL) is a set of flexible scripts to perform monitoring/failover and management of MySQL master-master replication configurations (with only one node writable at any time).
The toolset also has the ability to read balance standard master/slave configurations with any number of slaves, so you can use it to move virtual IP addresses around a group of servers depending on whether they are behind in replication.
MMM(Master-Master replication manager for MySQL)是一套支持双主故障切换和双主日常管理的脚本程序。MMM使用Perl语言开发,主要用来监控和管理MySQL Master-Master(双主)复制,虽然叫做双主复制,但是业务上同一时刻只允许对一个主进行写入,另一台备选主上提供部分读服务,以加速在主主切换时刻备选主的预热,可以说MMM这套脚本程序一方面实现了故障切换的功能,另一方面其内部附加的工具脚本也可以实现多个slave的read负载均衡。
MMM提供了自动和手动两种方式移除一组服务器中复制延迟较高的服务器的虚拟ip,同时它还可以备份数据,实现两节点之间的数据同步等。由于MMM无法完全的保证数据一致性,所以MMM适用于对数据的一致性要求不是很高,但是又想最大程度的保证业务可用性的场景。对于那些对数据的一致性要求很高的业务,非常不建议采用MMM这种高可用架构。
二、MySQL-MMM工作原理
MMM(Master-Master replication managerfor Mysql,Mysql主主复制管理器)是一套灵活的脚本程序,基于perl实现,用来对mysql replication进行监控和故障迁移,并能管理mysql Master-Master复制的配置(同一时间只有一个节点是可写的)。
mmm_mond:监控进程,负责所有监控工作,决定和处理所有节点角色活动。此脚本需要在监管机上运行。
mmm_agentd:运行在每个mysql服务器上的代理进程,完成监控的探针工作和执行简单的远端服务设置。此脚本需要在被监管机上运行。
mmm_control:一个简单的脚本,提供管理mmm_mond进程的命令。
mysql-mmm的监管端会提供多个虚拟IP(VIP),包括一个可写VIP,多个可读VIP,通过监管的管理,这些IP会绑定在可用mysql之上,当某一台mysql宕机时,监管会将VIP迁移至其他mysql。
在整个监管过程中,需要在mysql中添加相关授权用户,以便让mysql可以支持监理机的维护。授权的用户包括一个mmm_monitor用户和一个mmm_agent用户,如果想使用mmm的备份工具则还要添加一个mmm_tools用户。
三、该方案的优缺点
优点:稳定性高,可扩展性好,高可用,当主服务器挂掉以后,另一个主立即接管,其他的从服务器能自动切换,不用人工干预。
缺点:monitor节点是单点,不过这个你也可以结合keepalived或者haertbeat做成高可用
In two node master-master setup, MMM uses five IPs: single permanent IP for each node that is never changed, 2 reader IPs (read-only) and 1 writer IP (updates). Last three IPs are migrating between the nodes depending on node availability.
Normally (no replication failures, no replication delay etc) active master has 2 IPs (reader and writer), standby master - 1 IP (reader). In case of a failure, both - writer and reader roles migrate to the working node.
四、Active master role
Writer role is removed from old master:
MySQL is made read_only
Active connections are removed
IP is removed
Slaves are informed. They:
Try to catch up with the old master as far as possible
Change master to the new master
Writer role is added to the new master:
MySQL is made writable
IP is configured
相关推荐
数据库的运维向来是另人头疼的问题,相对于其他服务而言,数据库经常会成为整个架 构的性能瓶颈所在。...而mysql-mmm就为我们带 来了一个优秀的解决方案,下面的文档会带领我们一步步进行这个奇妙的世界。
本文将深入探讨几个适用于MySQL数据库的高可用性方案,并介绍其配置和实践。 首先,高可用方案的选择需要考虑具体的业务需求。例如,单点写入和主主同步是两种常见的业务场景。单点写入指的是所有的数据写入操作都...
MySQL-MMM(Master-Master Replication Manager for MySQL)是一个灵活的脚本集合,用于监控、故障转移以及管理MySQL主-主复制配置。它确保在任何时候只有一个节点可写,并能够根据复制的进度对标准主/从配置进行...
MySQL-MM(Master-Master Replication Manager)是一种针对MySQL数据库实现主主复制的高可用解决方案,旨在提供读写分离和故障切换的能力。MySQL-MM是社区维护的开源项目,它通过一个中间件来管理多个MySQL主主复制...
MySQL-MMM,全称为“MySQL Multi-Master Replication”,是一个开源的、高可用性的解决方案,用于管理MySQL数据库的多主复制。它旨在提供一个灵活、可扩展的框架,以实现数据库集群的高可用性和容错性。在MySQL-MMM...
MySQL-MM(Master-Master Replication Manager)是一种用于MySQL数据库的高可用性和负载均衡解决方案,它构建在MySQL主主复制的基础上,提供了更为高级的管理和监控功能。在这个系统中,两个MySQL服务器互相作为彼此的...
mmm_mond是MMM的核心组件,它负责持续监控所有节点的状态,包括数据库服务的运行状况、网络连通性、复制状态等。根据监控结果,mmm_mond会决定并执行相应的角色切换和故障处理策略。 2. **mmm_agent**: mmm_...
12-为什么选择MySQL数据库即MySQL优势介绍.avi 13-MySQL数据库分类与版本升级知识讲解.avi 14-MySQL数据库商业版与社区版区别.avi 15-MySQL数据库的发布版本知识讲解.avi 16-MySQL数据库发展的三条产品线介绍.avi 17...
Mysql-mmm是一种为MySQL数据库实现双主架构的高可用集群技术,它的主要作用是监控和管理主主复制的MySQL数据库集群,保证业务的持续可用性。MMM的全称是Master-Master replication manager for MySQL,它使用Perl...
mysql数据库函数大全 mysql数据库函数大全提供了多种字符串操作函数,以下是对标题、描述、标签和部分内容的详细解释: ASCII函数 ASCII(str) 返回字符串str的最左面字符的ASCII代码值。如果str是空字符串,返回0...
MySQL-MM(Multi-Master Replication)是MySQL数据库系统中一种多主复制解决方案,它旨在提供高可用性和数据一致性。在本演示中,我们将深入探讨MySQL-MM的核心概念、配置过程以及其在实际应用中的优势和挑战。 ...
MySQL-MMM架构部署完成后,可以通过客户端访问MySQL数据库集群。为了确保高可用性和数据一致性,需要合理地配置主从复制策略,并定期检查集群的状态。 - **主从复制** 在MySQL-MMM架构中,主从复制是实现高可用性...
MySQL Multi-Master Replication (MMM) 是一个高可用性解决方案,专为MySQL数据库设计,用于实现多主复制。MMM允许数据在多个主服务器之间进行实时同步,提供了容错能力和负载均衡,确保即使在一个或多个主节点故障...
MySQL是世界上最受欢迎的关系型数据库管理系统之一,为了保证数据的高可用性和稳定性,许多企业选择采用高可用架构。本文将深入探讨MySQL的MMM(Mysql-Multi-Master Replication)架构,以及如何搭建和验证该架构。 ...
1. **高可用性**:MySQL-MMm通过实时监控和自动故障切换,确保即使在数据库服务器故障的情况下,服务仍然能够正常运行,降低了业务中断的风险。 2. **扩展性**:该架构支持主主复制,这意味着数据可以在多台服务器...
3. **安装监控软件**:在监控服务器上安装`mysql-mmm-monitor`,在数据库服务器上安装`mysql-mmm-agent`。 4. **配置文件**:每个服务器上都有特定的配置文件,如`mmm_agent.conf`和`mmm_common.conf`(db服务器),...