Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  Performing a Rolling Restart of an NDB Cluster

25.6.5 执行 NDB 集群的滚动重启

本节讨论如何执行 NDB 集群安装的滚动重启,以便在不中断集群操作的情况下停止和启动(或重新启动)每个节点。这通常是作为滚动升级或滚动降级的一部分,高可用性是强制性的,集群整体不得中断。这里提供的信息也适用于降级。

有多种原因可能需要执行滚动重启。下面几段将对此进行描述。

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

NDB 集群软件升级或降级。  要升级集群到 NDB 集群软件的新版本(或降级到旧版本)。这通常被称为滚动升级(或滚动降级)。

节点主机更改。  要更改运行 NDB 集群节点进程的硬件或操作系统。

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

资源恢复。  要释放之前分配给表的内存,以便重新用于其他 NDB 集群表。

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

  1. 停止所有集群管理节点 (ndb_mgmd 进程),重新配置它们,然后重新启动它们。(参阅 具有多个管理服务器的滚动重启。)

  2. 停止、重新配置,然后重新启动每个集群数据节点 (ndbd 进程)依次进行。

    某些节点配置参数可以通过发出RESTART命令来更新,每个数据节点在ndb_mgm客户端中按照前一步骤进行。其他参数需要停止数据节点,使用管理客户端STOP命令,然后从系统shell中重新启动ndbdndbmtd可执行文件,如适用。(在大多数 Unix 系统上,也可以使用kill命令停止数据节点进程,但STOP命令是首选的通常更简单。)

    Note

    在 Windows 上,也可以使用SC STOPSC START命令、NET STOPNET START命令,或者使用 Windows 服务管理器来停止和启动节点,这些节点已经安装为 Windows 服务(见第 25.3.2.4 节,“将 NDB 集群进程安装为 Windows 服务”)。

    每个节点配置参数的重启类型在文档中都有所指。见第 25.4.3 节,“NDB 集群配置文件”

  3. 停止、重新配置,然后重新启动每个集群 SQL 节点(mysqld进程)依次进行。

NDB 集群支持升级节点的灵活顺序。当升级 NDB 集群时,可以在升级管理节点、数据节点或同时升级之前升级 API 节点(包括 SQL 节点)。换言之,允许以任何顺序升级 API 和 SQL 节点。

  • 该功能仅供在线升级使用。在生产环境中,不支持长期使用来自不同 NDB 集群版本的节点二进制文件的混合。

  • 必须升级同类型的所有节点(管理节点、数据节点或 API 节点),然后才能升级不同类型的节点。这适用于升级集群的 API 和 SQL 节点的顺序。

  • 必须升级所有管理节点,然后才能升级任何数据节点。这适用于升级集群的 API 和 SQL 节点的顺序。

  • 直到所有管理节点和数据节点都升级后,才能使用新版本的功能。

    这也适用于 MySQL 服务器版本更改,除了 NDB 引擎版本更改外,还需要考虑到升级计划中。(这适用于 NDB 集群的在线升级。)

在节点重启期间,任何 API 节点都不能执行模式操作(例如数据定义语句)。由于这个限制,模式操作也不支持在线升级或降级。此外,在升级或降级期间,也不能执行本机备份。

具有多个管理服务器的滚动重启  在具有多个管理节点的 NDB 集群中执行滚动重启时,需要注意ndb_mgmd检查是否有其他管理节点正在运行,并尝试使用该节点的配置数据。为了避免这种情况,并强制ndb_mgmd重新读取其配置文件,执行以下步骤:

  1. 停止所有 NDB 集群ndb_mgmd进程。

  2. 更新所有config.ini文件。

  3. 使用单个 ndb_mgmd 带有 --reload--initial 或两者选项,如需启动。

  4. 如果您使用 --initial 选项启动了第一个 ndb_mgmd,那么您必须使用 --initial 选项启动任何剩余的 ndb_mgmd 进程。

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

  5. 正常完成数据节点和 API 节点的滚动重启。

在执行滚动重启以更新集群配置时,您可以使用 config_generation 列的 ndbinfo.nodes 表来跟踪哪些数据节点已经成功地使用新配置重启。请参阅 第 25.6.17.48 节,“ndbinfo nodes 表”