Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  MySQL NDB Cluster 8.4  /  NDB Cluster Overview

25.2 NDB 集群概述

NDB Cluster 是一种技术,允许在共享-nothing 系统中集群内存数据库。共享-nothing 架构使得系统可以使用非常廉价的硬件,并且不需要特定的硬件或软件要求。

NDB Cluster 设计以避免单点故障。在共享-nothing 系统中,每个组件都预期有自己的内存和磁盘,使用共享存储机制,如网络共享、网络文件系统和 SANs 不推荐或不支持。

NDB 集群将标准 MySQL 服务器与内存中-clustered 存储引擎NDB集成(其中的“Network DataBase”)。在我们的文档中,术语NDB指的是存储引擎特定的设置部分,而MySQL NDB 集群”指的是一个或多个 MySQL 服务器与NDB存储引擎的组合。

一个 NDB 集群由一组计算机组成,每个计算机称为主机,每个主机运行一个或多个进程。这些进程,称为节点,可能包括 MySQL 服务器(用于访问 NDB 数据)、数据节点(用于存储数据)、一个或多个管理服务器,以及可能的其他专门化数据访问程序。NDB 集群中的组件关系如图所示:

图25.1 NDB 集群组件

In this cluster, three MySQL servers (mysqld program) are SQL nodes that provide access to four data nodes (ndbd program) that store data. The SQL nodes and data nodes are under the control of an NDB management server (ndb_mgmd program). Various clients and APIs can interact with the SQL nodes - the mysql client, the MySQL C API, PHP, Connector/J, and Connector/NET. Custom clients can also be created using the NDB API to interact with the data nodes or the NDB management server. The NDB management client (ndb_mgm program) interacts with the NDB management server.

这些程序共同组成了一个 NDB 集群(见第 25.5 节,“NDB 集群程序”)。当使用 NDB 存储引擎存储数据时,表(及其数据)将被存储在数据节点中。这些表可以直接从集群中的所有其他 MySQL 服务器(SQL 节点)访问。因此,在一个 payroll 应用程序中,如果一个应用程序更新了员工的薪资,所有其他查询该数据的 MySQL 服务器都可以立即看到这个变化。

NDB 集群 8.4 SQL 节点使用mysqld 服务器守护进程,这与 MySQL 8.4 发行版中提供的 mysqld 一致。请注意,无论版本如何,如果一个 mysqld 实例不连接到 NDB 集群,就不能使用 NDB 存储引擎,也不能访问 NDB 集群数据

NDB 集群中的数据可以被镜像;集群可以处理单个数据节点的故障,唯一的影响是少数事务因失去事务状态而被中止。由于 transactional 应用程序预期处理事务失败,这应该不是问题的来源。

单个节点可以停止和重新启动,然后重新加入系统(集群)。滚动重启(所有节点逐一重启)用于配置更改和软件升级(请参见第25.6.5节,“NDB 集群的滚动重启”)。滚动重启也用于在线添加新数据节点(请参见第25.6.7节,“在线添加 NDB 集群数据节点”)。关于数据节点、NDB 集群中的组织方式和如何处理和存储 NDB 集群数据,请参见第25.2.2节,“NDB 集群节点、节点组、副本片段和分区”

可以使用 NDB 集群管理客户端和 NDB 集群分发中包含的ndb_restore 程序来备份和恢复 NDB 集群数据库。更多信息,请见第25.6.8节,“NDB 集群在线备份”,和第25.5.23节,“ndb_restore — Restore an NDB Cluster Backup”。您也可以使用标准 MySQL 功能,通过mysqldump 和 MySQL 服务器来实现备份。更多信息,请见第6.5.4节,“mysqldump — A Database Backup Program”

NDB 集群节点可以使用不同的传输机制进行节点之间的通信;在大多数实际部署中,TCP/IP 在标准 100 Mbps 或更快的以太网硬件上被使用。