`
b_l_east
  • 浏览: 639379 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

数据库集群理解--MySQL MMM集群

 
阅读更多

本文章不是讲集群方案什么的

我不懂集群,今天牛同事给俺介绍了一下他的MysqlMMM集群,我这里做做笔记,记录我对集群的理解,以后后翻查。

 

数据库集群的特征就是 有多台机器,这多台机器上都有数据库, 这些数据库的数据是完全一样的,即相当于一套数据的多个副本。集群就是要保证这些副本的实时或准时实(可以延时一会)的同步,即如果一台机器上的数据更改时,集群系统要保证这个更改实时或准时实的应用到所有的机器上,实现数据同步。

 

集群主要解决两个问题:

1. 负载均衡:这个主要是解决访问量大的问题。一台机器的读写能力是有限的,当同时有大量用户访问的时候,仅一台机器可能就会因负载过大而垮掉。而使用集群后,集群系统会将访问量均衡到每台机器上,也即多台机器分担了访问量,这就达到了负载均衡的目的。

2. 当机:当只有一台机器时,如果这台机器因意外当机会需要停机维护,那么此时系统就不能访问,对于一些使用量大,使用频繁的系统而言,这样是肯定不行的。如果使用集群,只有集群中有一台机器还在运行,就能让系统继续运行下去,而且对于重新启动的机器,能很快的同步在停机时间用户所做的更改。我的当前公司很喜欢用顶这个词,当一台机器垮掉时,能立马有另一台机器顶上。

 

集群的方式和技术点:

由于俺对集群不了解,对于有几种方式更是不清楚,这里就以这个同事介绍的Mysql MMM集群记记。

这个集群用了5台机器,两个主(Master),两个从(Slave),一个用来监视。这里只介绍大概,具体的俺也不清楚。

5台机器都有一个IP,在集群时给两台主机器分配了同一个虚拟IP,这个虚拟IP主要用来进行写操作(事务性操作)。然后再为两个主和两个从每机分配一个虚拟IP,这些ip用于读操作。虚拟IP就是为了让集群系统来决定每一个访问所连接的机器(或数据库),从而达到负载平衡。给机器分为主和从,是为了让主作为作为写的主体,即所有写的操作都是在主上进行。主和从都可以作为读的主体,由于在平时访问中一般读取要远大于写操作,所以这里就机当于多出两台从机器用于读取负载。

 

当要进行写操作时,使用写的虚拟IP连接数据库,集群系统会跟据两个主的状态选择一台负载小的机器连接,然后就是进行写操作,由于写操作的是事务性的,这个事务会扩展到另一个主机上,也即如果在写操作时要锁定表,另一台主机器上的相同表也会被锁定。当事务提交时,被连接的主机器立马将相同的事务操作应用到另一台主机器上,从而实现两台机器的同步。从表面上看,写操作对两台机器都进行了操作,不旦没有节省时间和资源,还增大了开销,但从细节上来看还是有很多优点所在的。首先,只所以用多台主机器,是为了防止其中一台当机了,系统不能进行写操作,所以写的事务会同步到所有主机器上必须要做的。其次,在进行写操作时,对事务的缓冲只在真正连接的机器上,其它主机器只是同步事务,即锁定该锁定的,没有操作缓冲,只有在提交事务时,连接的机器才会把所做的更改发给其它主机器让其同步。所以这里来说,其它主机器没有太大的写操作开销。 这里也要注意,主机器之间的网络连通一定要好,否则会出现瓶颈。  以上写操作都未提到从机器。 我认为在写操作时,从机器也被扩展了事务(也可能没有),即该锁定的表也锁定了(也可能没有锁),在写事务提交时,并没有马上进行同步,这要根据当时的负载和网络连通情况,集群系统会挑一个“合适”的时机,让从机器跟主机器同步,所以这里会有一定的延时,也就是当你写完所,你通过连接读的虚拟IP获取的数据不一定就包括了你先前的更改,除非你就用进行写操作的连接进行读操作,因为这两个机器连的都是同一台机器,所以一致。

 

好了,理解就暂时这么多,至于如何集群,现在没这个需要,到时再看。

分享到:
评论

相关推荐

    mysql-MMM实现mysql高可用

    MySQL-MM(Master-Master Replication Manager)是一种用于MySQL数据库的高可用性和负载均衡解决方案,它构建在MySQL主主...然而,正确配置和维护这样的系统需要深入理解MySQL复制原理和集群管理,以确保系统的稳定运行。

    mysql-mmm高可用

    MySQL-MM(Master-Master Replication Manager)是一种针对MySQL数据库实现主主复制的高可用解决方案,旨在提供读写分离和故障切换的能力。MySQL-MM是社区维护的开源项目,它通过一个中间件来管理多个MySQL主主复制...

    Mysql-mmm双主高可用集群

    在搭建过程中,需要注意的是,MMM集群需要手动配置MySQL的复制关系,包括设置master节点的复制权限,配置master节点的binlog位置,以及配置slave节点指向正确的master节点。搭建过程中还需要确保所有节点之间的时间...

    mysql-mmm有关mmm_control 参数测试(完整版)

    MySQL-MMM,全称为MySQL Master-...在使用MMM时,理解并正确配置这些参数和模式至关重要,以确保MySQL集群的稳定性和高可用性。在实际部署中,还需要根据具体需求和环境调整配置,确保在各种情况下都能提供可靠的服务。

    MySQL-MMM架构部署使用与性能调优

    MySQL-MMM架构部署完成后,可以通过客户端访问MySQL数据库集群。为了确保高可用性和数据一致性,需要合理地配置主从复制策略,并定期检查集群的状态。 - **主从复制** 在MySQL-MMM架构中,主从复制是实现高可用性...

    _mmm2_mysql-mmm-2.0.9-1.pdf

    ### MySQL Master-Master Replication Manager (MMM):深入解析与应用 #### 概览 MMM(MySQL Master-Master Replication Manager)是一套灵活...通过对MMM的理解与合理配置,可以显著提高MySQL集群的可用性与稳定性。

    mysql-mmm架构学习1

    总之,MySQL-MMm是一个强大的工具,可以帮助你构建高可用、高扩展的MySQL集群,但同时也需要注意其潜在的单点故障问题,并采取措施来解决。通过理解其工作原理和正确搭建,可以有效地提升MySQL系统的稳定性和可靠性...

    云环境MMM数据库集群双主多从架构模型构建.pdf

    云环境MMM数据库集群双主多从架构模型构建.pdf

    Mysql_mmm_rpm.rar

    MySQL-MMM,全称为“MySQL Multi-Master Replication”,是一个开源的、高可用性的解决方案,用于管理MySQL数据库的多主复制。它旨在提供一个灵活、可扩展的框架,以实现数据库集群的高可用性和容错性。在MySQL-MMM...

    MySQL高可用架构MMM简单介绍.docx

    MySQL-MMM架构的基础:master1和...如果对外提供服务的master意外宕机了,这是MySQL本身并不具备failover切换的能力,尽管集群中仍然有一个正常的master节点,但应用仍不可用。mysql-mmm就是为了解决这个问题诞生的。

    2017最新老男孩MySQL高级专业DBA实战课程全套【清晰不加密】,看完教程月入40万没毛病

    02-数据库概念介绍.avi 03-数据库种类介绍及关系型数据库原理.avi 04-非关系型数据库介绍.avi 05-非关系型数据库种类介绍.avi 06-关系型数据库产品介绍01.avi 07-关系型数据库产品介绍02.avi 08-非关系型数据库产品...

    老男孩Mysql高级DBA 实战新浪首席DBA 老男孩教育杨海朝老师全程主讲 老男孩Mysql视频.txt

    │ MySQL培训(10)_MySQL高可用方案之MMM.docx │ MySQL培训(10)_MySQL高可用方案之PXC安装与配置.pdf │ Percona_XtraDB_Cluster文档.pdf │ ├─L011-oldboy-mysql-dba-lesson11 │ 1101-MySQL命令工具_rec....

    mysql router vs maxscale

    - MMM HA:MySQL Multi-Master Replication Manager for High Availability,是 MMM复制管理器的高可用解决方案。 - MHA HA:Master High Availability,是提高数据库主从复制高可用性的工具。 - MySQL Fabric:...

    Amoeba+mysql 读写分离 Keepalived+mysql

    这里我们主要探讨的是如何使用Amoeba与MySQL实现读写分离,以及如何利用Keepalived来构建MySQL的高可用集群。这两部分内容对于保障数据库服务的稳定性和效率至关重要。 **Amoeba+MySQL 读写分离** Amoeba 是一个...

    MySQL大型分布式集群完整视频教程

    MySQL大型分布式集群 MHA MMM 读写分离 集群 分片切片

    Mysql_mmm_rpm.zip

    MySQL Multi-Master Replication (MMM) 是一个高可用性解决方案,专为MySQL数据库设计,用于实现多主复制。MMM允许数据在多个主服务器之间进行实时同步,提供了容错能力和负载均衡,确保即使在一个或多个主节点故障...

    MySQL-MHA集群

    MHA的架构设计不同于MMM(MySQL Master-Master Cluster),后者需要搭建主-主复制模式,而MHA只需构建基础的主-从复制结构即可。当主数据库出现故障时,MHA能够从现有的从数据库中选取一个来升级为主数据库,从而...

Global site tag (gtag.js) - Google Analytics