21.5.5 执行 NDB 群集的滚动重启

本节讨论如何执行 NDB 群集安装的滚动重新启动,之所以这样称呼,是因为它涉及依次停止和启动(或重新启动)每个节点,以使群集本身保持运行状态。这通常是在滚动升级或滚动降级的一部分中完成的,在这种情况下,群集的高可用性是强制性的,不允许整个群集的停机时间。当我们提到升级时,此处提供的信息通常也适用于降级。

有多种原因可能导致需要重新启动滚动。这些将在接下来的几段中进行描述。

配置更改. 更改集群的配置,例如将 SQL 节点添加到集群,或将配置参数设置为新值。

NDB 群集软件升级或降级. 要将群集升级到 NDB 群集软件的较新版本(或将其降级到较旧的版本)。这通常称为“滚动升级”(或在还原到较旧版本的 NDB Cluster 时,称为“滚动降级”)。

更改节点主机. 对运行一个或多个 NDB 群集节点进程的硬件或 os 进行更改。

系统重置(集群重置). 重置集群,因为它已达到不良状态。在这种情况下,通常需要重新加载一个或多个数据节点的数据和元数据。可以通过以下三种方式之一来完成此操作:

有关更多信息,请参见第 21.5.8 节“ NDB 群集的在线备份”第 21.4.24 节“ ndb_restore-还原 NDB 群集备份”

资源恢复. 释放先前通过连续INSERTDELETE操作分配给 table 的内存,以供其他 NDB 群集 table 重用。

执行滚动重启的过程可以概括如下:

通过执行上一步,为ndb_mgmClient 端中的每个数据节点发出RESTART,可以更新某些节点配置参数。其他参数要求使用 ManagementClient 端STOP命令完全停止数据节点,然后通过适当地调用ndbdndbmtd可执行文件从系统 Shell 重新启动该节点。 (诸如kill之类的 shell 命令也可以在大多数 Unix 系统上用于停止数据节点进程,但是STOP命令是首选的,并且通常更简单。)

Note

在 Windows 上,您还可以使用 SC STOPSC START 命令,NET STOPNET START命令,或 Windows Service Manager 来停止和启动已作为 Windows 服务安装的节点(请参阅第 21.2.4.4 节“将 NDB 群集进程安装为 Windows 服务”)。

文档中针对每个节点配置参数指示了所需的重新启动类型。参见第 21.3.3 节“ NDB 群集配置文件”

NDB Cluster 支持某种灵活的 Sequences 来升级节点。升级 NDB 群集时,可以先升级 API 节点(包括 SQL 节点),然后再升级 Management 节点和/或数据节点。换句话说,允许您以任何 Sequences 升级 API 和 SQL 节点。这要遵守以下规定:

除 NDB 引擎版本更改外,这还适用于任何可能适用的 MySQL Server 版本更改,因此在计划升级时请不要忘记考虑这一点。 (通常对于 NDB Cluster 的在线升级是正确的.)

任何 API 节点在节点重新启动期间都无法执行架构操作(例如数据定义语句)。部分由于此限制,在线升级或降级期间也不支持架构操作。

使用多个 Management 服务器重新启动滚动. 对具有多个 Management 节点的 NDB 群集执行滚动重新启动时,应记住ndb_mgmd检查是否正在运行其他 Management 节点,如果正在运行, ,尝试使用该节点的配置数据。为防止这种情况发生,并迫使ndb_mgmd重新读取其配置文件,请执行以下步骤:

无论在启动第一个ndb_mgmd时使用任何其他选项,都不应在第一个--reload之后启动任何剩余的ndb_mgmd进程。

在执行滚动重新启动以更新集群的配置时,可以使用ndbinfo.nodestable 的config_generation列来跟踪哪些数据节点已使用新配置成功重新启动。参见第 21.5.14.28 节,“ ndbinfo 节点 table”

首页