MySQL 集群有两种命名方式,在Mysql5.1版本之前,MySQL 集群是以MySQL版本号命名;MySQL5.1(包括)之后开始以 mysql-mysql_server_version-ndb-ndbcluster_engine_version来区分,这样即使同一个MySQL服务器版本,也可能有多个集群版本。 

往往我们在研究mysql集群的时候,是通过关键字mysql集群来百度的,但是这种是错误的方法,也很容易让人误导mysql集群的概念,很多文章中把多实例或者主从架构认为是mysql集群,这种是不对的, 我们在搜索问题时,正确的方法是通过关键字 “mysql ndb cluster ” 来搜索mysql集群相关问题,特别是ndb引擎


mysql集群采用的是NDB存储引擎,而mysql的单机版采用的是innodb引擎。

集群下载地址: https://dev.mysql.com/downloads/cluster/

也可以到国内的镜像地址,下载相关的比较久远的版本

 

       http://mirrors.sohu.com/mysql/
       http://mirrors.ustc.edu.cn/mysql-ftp/Downloads/
       http://mirrors.163.com/mysql/Downloads/



相关可以查看官方的一些解释

https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster.html
https://dev.mysql.com/doc/refman/5.6/en/mysql-cluster.html
https://dev.mysql.com/doc/refman/8.0/en/mysql-cluster-what-is-new.html
https://dev.mysql.com/doc/refman/8.0/en/mysql-cluster-limitations-resolved.html


drbd mysql集群 mysql集群版_MySQL

 

 


我们具体看下,mysql集群的版本变化情况


2004-6-28    
MySQL 集群 4.1.3发布,并第一次添加集群功能;  

2004-9-16   
MySQL 集群 4.1.5对范围、全表扫面性能上提高;修改DDL操作方式;在线备份;NULL索引的处理;在ndb_mgm客户端增加更多的命令;
更改ndb_mgmd和ndbd启动参数等等,该版本做了大量修改; 

 2004-12-14

MySQL 集群 4.1.8 更改默认端口号 2200  确定的;ndb_mgm增加几个命令;将命令行选项都定义到 my.cnf 的节点中。增加集群日志信息; 

2005-1-13
MySQL 集群 4.1.9采用新的方式实现传输者共享内存等; 

2005-2-12–>2005-5-26
MySQL 集群 4.1.10–>MySQL Cluseter 5.0.7 一直都在修复bug

2005-5-26–>2009-12-04
MySQL 5.0.8–>MySQL 集群 5.0.88 只修过两次Bug;

2006-12-20
MySQL5.1.14开始出现 NDB 6.1.0 新的命名方式为了与MySQL服务器区分,6.1.X版本只是做了提高备份速度、为跟踪事务、扫描操作和锁情况增加DUMP客户端、单独设置每个数据节点启动时分配内存的超时时间、增加参数、数据节点使用内存的限制、添加几个客户端管理工具、修bug等

2007-4-3
MySQL5.1.16–NDB 6.2.0 开始beta版,注定6.2.X发布很多重要的MySQL内核方面的更新,如支持磁盘数据;支持行复制(不能利用之前语句级的);在线ALTER TABLE和ADD\DROP INDEX的性能提高;让大小可变记录更有效;增加节点的最大值;新的内存分配器;增加连接池提供并发能力

2007-7-2
MySQL5.1.19–NDB 6.3.0 开始beat版,由于存储空间的问题,对备份和LCP文件进行压缩,节省空间42%左右;在Optimize Table时整理动态可变字段的碎片;集群间复制的冲突检测与解决方案。

2008-12-22
NDB6.4.0发布了版本就消失了

2008-3-18
升级NDB7.0版本,之后NDB7.0开始对集群性能与扩展进行大刀阔斧的修改,增加多线程数据节点只是通过不同的二进制文件进行;在线添加数据节点;支持磁盘 数据文件多线程访问;改进大数据记录处理能力;支持WINDOWs平台;简化集群监控和管理;支持后台电信级目录;MySQL集群快照选项;支持事务改变结构,对DDL在数据库节点发生故障时完好恢复。

2010-2-01
NDB7.1版本发布beta版,增加监控管理能力 ndbinfo-statstic 报告和MySQL集群JAVA连接器;已开始在电信领域使用了。

2011-10-03
NDB7.2版本自适应查询本地化提高速度近70倍;采用本地的Memcached API实现NoSQL;增强数据节点可扩展性;多站点集群;简化active/active复制;统一用户权限;整合MySQL5.5 服务器;支持虚拟机环境;自动在线添加节点;一步式创建集群

目前NDB7.2版本有商业版针对电信运营商,在集群中的有些功能会比MySQL server更优,比如在NDB 6.2.0的时候就实现了fast drop\add index,而MySQL Server到5.5版本才实现,其实从NDB版本预先新增功能来看,MySQL是要把cluster的步子迈大点,不仅注重社区版的,CGE版本也会大力,CGE价格可以查询http://mysql.com/tcosavings/,1-4个CPU插槽的价格是$10,000。还是推荐大家使用非CGE版本。

NDB 节点(即数据节点)主要是实现底层数据存储的功能,保存Cluster的数据。每一个NDB 节点保存
完整数据的一部分(或者一份完整的数据,视节点数目和配置而定),在MySQL CLuster 里
面叫做一个fragment。而每一个fragment,正常情况来讲都会在其他的主机上面有一份(或
者多分)完全相同的镜像存在。这些都是通过配置来完成的,所以只要配置得当,Mysql
Cluster 在存储层不会出现单点的问题。一般来说,NDB 节点被组织成一个一个的NDB Group,
一个NDB Group 实际上就是一组存有完全相同的物理数据的NDB 节点群。
上面提到了NDB 各个节点对数据的组织,可能每个节点都存有全部的数据也可能只保存
一部分数据,主要是受节点数目和参数来控制的。首先在Mysql Cluster 主配置文件(在管
理节点上面,一般为config.ini)中,有一个非常重要的参数叫NoOfReplicas,这个参数
指定了每一份数据被冗余存储在不同节点上面的份数,该参数一般至少应该被设置成2,也
只需要设置成2 就可以了。因为正常来说,两个互为冗余的节点同时出现故障的概率还是非
常小的,当然如果机器和内存足够多的话,也可以继续增大。一个节点上面是保存所有的数
据还是一部分数据,还受到存储节点数目的限制。NDB 存储引擎首先保证NoOfReplicas 参
数配置的要求对数据冗余,来使用存储节点,然后再根据节点数目将数据分段来继续使用多
余的NDB 节点,分段的数目为节点总数除以NoOfReplicas 所得。