MySQL NDB(Network Database)是MySQL的一个存储引擎,也称为NDB Cluster存储引擎。它主要用于构建高可用性、高可扩展性和高性能的分布式数据库集群。NDB Cluster是MySQL的一个特殊版本,专门设计用于处理大规模的分布式数据存储和处理需求。
【重点】 MySQL NDB Cluster 不支持 InnoDB Cluster,必须使用 MySQL ServerInnoDB 存储引擎以及 NDB Cluster 发行版中未包含的其他应用程序来部署 InnoDB Cluster。MySQL Server 9.0 二进制文件不能与 MySQL NDB Cluster 一起使用。
NDB Cluster 二进制文件和源代码包下载地址
MySQL :: Download MySQL NDB Cluster
特点和概念:
分布式架构:
NDB Cluster采用分布式架构,数据可以分布在多个节点上,每个节点都可以处理读写请求。
这种架构使得NDB Cluster能够水平扩展,通过增加节点来提高处理能力和存储容量。
高可用性:
NDB Cluster提供高可用性,通过数据复制和自动故障转移机制,确保在节点故障时数据仍然可用。
数据在多个节点之间进行同步复制,确保数据的冗余和一致性。
实时性能:
NDB Cluster针对实时应用进行了优化,提供低延迟和高吞吐量的数据访问。
它适用于需要快速数据访问和高并发处理的应用场景。
事务支持:
NDB Cluster支持ACID事务,确保数据的完整性和一致性。
它使用两阶段提交协议来保证分布式事务的一致性。
数据分片:
NDB Cluster支持数据分片(sharding),可以将数据分布在多个节点上,提高查询性能和可扩展性。
数据分片可以根据表的主键或其他属性进行自动分配。
管理工具:
-
NDB Cluster提供了一系列管理工具和命令行接口,用于配置、监控和管理集群。
-
这些工具可以帮助管理员进行集群的部署、维护和故障排除。
支持的平台
9.x | 8.4 长期支持 | 8.0 | 7.6 | 7.5 | ||
---|---|---|---|---|---|---|
操作系统 | 建筑学 | |||||
Oracle Linux / Red Hat / CentOS / Rocky Linux | ||||||
Oracle Linux 9 / Red Hat Enterprise Linux 9 / Rocky Linux 9 | x86_64 | • | • | • | ||
Oracle Linux 8 / Red Hat Enterprise Linux 8 / CentOS 8 / Rocky Linux 8 | x86_64 | • | • | • | ||
Oracle Linux 7 / Red Hat Enterprise Linux 7 / CentOS 7 | x86_64 | • | • | • | • | • |
Oracle Linux 6 / Red Hat Enterprise Linux 6 / CentOS 6 | x86_32、x86_64 | • | • | |||
Oracle Solaris | ||||||
Solaris 11(更新 4+) | SPARC_64 | • | • | • | • | • |
典范 | ||||||
Ubuntu 24.04 LTS | x86_64 | • | • | • | ||
Ubuntu 22.04 LTS | x86_64 | • | • | • | ||
Ubuntu 20.04 LTS | x86_64 | • | ||||
SUSE | ||||||
SUSE 企业版 Linux 15 / OpenSUSE 15 (15.5) | x86_64 | • | • | • | ||
SUSE Enterprise Linux 12(12.5+) | x86_64 | • | • | • | ||
Debian | ||||||
Debian GNU/Linux 12 | x86_64 | • | • | • | ||
微软 Windows 服务器 | ||||||
Microsoft Windows 2022 服务器 | x86_64 | • | • | • | ||
微软 Windows 2019 服务器 | x86_64 | • | • | • | ||
Microsoft Windows 2016 服务器 | x86_64 | • | • | • | • | |
微软Windows | ||||||
微软 Windows 11 | x86_64 | • | • | • | ||
微软 Windows 10 | x86_64 | • | • | • | ||
苹果 | ||||||
macOS 14 | x86_64,arm64 | • | • | • | ||
macOS 13 | x86_64,arm64 | • | • | • |
NDB群集组件
NDB 集群安装文档地址:MySQL :: MySQL 9.0 Reference Manual :: 25.3 NDB Cluster Installation
集群节点共有三种类型:
- 管理节点:此类节点的作用是管理NDB Cluster内的其他节点,执行提供配置数据、启动和停止节点以及运行备份等功能。由于此节点类型管理其他节点的配置,因此应先启动此类型的节点,然后再启动任何其他节点。管理节点使用命令ndb_mgmd启动。
- 数据节点:此类节点存储集群数据。数据节点的数量与片段副本的数量乘以片段的数量相同。例如,对于两个片段副本,每个副本有两个片段,您需要四个数据节点。一个分片副本足以存储数据,但不提供冗余;因此,建议有两个(或更多)片段副本以提供冗余,从而提供高可用性。数据节点使用命令ndbd 或 ndbmtd启动。 NDB Cluster 表通常完全存储在内存中而不是磁盘上(这就是我们将 NDB Cluster 称为 内存数据库的原因)。但是,一些 NDB Cluster 数据可以存储在磁盘上
- SQL节点:这是访问集群数据的节点。在NDB集群中,SQL节点是使用NDBCLUSTER存储引擎的传统MySQL服务器。SQL节点是由--ndbcluster和--ndb-connectstring选项启动的mysqld进程。SQL 节点实际上只是一种特殊类型的 API 节点,它指定访问 NDB Cluster 数据的任何应用程序
NDB 集群多计算机设置