• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 执行NDB群集的滚动重启

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

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

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

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

    在节点主机上更改。在运行一个或多个NDB群集节点进程的硬件或操作系统中进行更改。

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

    • 使用该选项启动每个数据节点进程(ndbd或可能的ndbmtd),该--initial选项将强制数据节点清除其文件系统,并从其他数据节点重新加载所有NDB Cluster数据和元数据。
    • 在执行重新启动之前,使用ndb_mgm client START BACKUP命令创建备份。升级后,使用ndb_restore还原一个或多个节点。

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

    • 在升级之前,使用mysqldump创建备份。之后,使用还原转储LOAD DATA

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

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

    1. 停止所有群集管理节点(ndb_mgmd进程),重新配置它们,然后重新启动它们。(请参阅使用多个管理服务器重新启动。)
    2. 依次停止,重新配置,然后重新启动每个群集数据节点(ndbd进程)。

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

      注意

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

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

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

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

    • 此功能仅供在线升级的一部分使用。既不打算也不支持来自不同NDB群集版本的节点二进制文件的混合,以在生产环境中连续,长期使用。
    • 在升级任何数据节点之前,必须先升级所有管理节点。无论升级群集的API和SQL节点的顺序如何,这仍然适用。
    • 在升级所有管理节点和数据节点之前,不得使用特定于“ new ”版本的功能。

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

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

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

    1. 停止所有NDB群集ndb_mgmd进程。
    2. 更新所有config.ini文件。
    3. 根据需要使用,或两个选项启动一个ndb_mgmd--reload--initial
    4. 如果使用选项启动了第一个ndb_mgmd,则--initial还必须使用来启动所有剩余的ndb_mgmd进程--initial

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

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

    执行滚动重新启动以更新集群的配置时,可以使用表的config_generationndbinfo.nodes来跟踪使用新配置已成功重新启动了哪些数据节点。请参见“ ndbinfo节点表”。