MySQL Cluster 是官方推出的基于 NDB(Network DataBase)存储引擎的高可用和可伸缩的分布式数据库系统。
以下是 MySQL NDB Cluster 的主要特点和能力:
一个 MySQL Cluster 主要由以下三部分组成:
SQL 节点主要负责实现一个数据库在存储层之上的所有事情,比如连接管理,Query 优化和响应 ,Cache 管理等等,只有存储层的工作交给了 NDB 数据节点去处理了。也就是说,在 MySQL Cluster 环境中的 SQL 节点,可以被认为是一个不需要提供任何存储引擎的 MySQL 服务器,因为他的存储引擎由 NDB 节点担任。
管理节点的作用是管理集群中的其他节点,执行提供配置数据、启动和停止节点以及运行备份等功能。因为这种类型的节点管理其他节点的配置,所以应该首先启动这种类型的节点,然后再启动任何其他节点。使用命令 ndb_mgmd 启动管理节点。
数据节点主要实现底层数据存储功能。每一个数据节点保存完整数据的一个 fragment,也就是一个数据分片(或者一份完整的数据,视节点数目和配置而定),所以只要配置得当,MySQL Cluster 在存储层不会出现单点的问题。使用命令 ndbd 或 ndbmtd 启动数据节点。
下面是一幅 MySQL Cluster 的基本架构图(出自 MySQL 官方参考手册):