如何执行 MySQL NDB 集群的滚动重启

当我们需要重启集群中的所有节点以使某些更改生效时,需要滚动重启。
与其关闭整个集群,我们还可以一个接一个地重新启动每个单个节点,以允许集群在更改期间继续处理请求。

大多数操作都可以使用此技术完成,例如更改 config.ini 设置(即 DataMemory、MaxNoOfConcurrentTransactions 等)。
但是,当我们无法使用此过程更改 NDB 集群节点布局时,有一个主要实例。

当我们更改集群的拓扑时,例如更改 NoOfReplicas 或者删除数据节点。
在上面的场景中,我们必须完全关闭并重新启动集群。
在某些情况下,我们可能还必须转储和重新导入数据。

为了进行滚动重启,应采取以下步骤:

  • 设置新的 config.ini 或者安装新版本的软件。
  • 使用 ndb_mgmd 重新启动管理节点。这会导致管理服务器读入新的配置文件,该文件将在后面的步骤中由数据和 mysqld 节点检索。不要忘记为更高版本添加 -reload 选项。
  • 使用 ndbd (或者 ndbmtd )重新启动每个数据节点,一次一个。这需要完全重新启动,并且必须在每台机器上完成,而不是通过管理服务器。这将导致节点读取远程配置并使用软件的新设置和版本。
  • 重新启动每个 SQL 节点 (mysqld)。根据应用程序如何处理 mysqld 节点的故障转移情况,我们可能需要重新配置它们以在启动时重用每个节点。

完成上述步骤后,我们应该将所有新配置信息传播到节点。
此外,如果我们升级了集群软件,我们现在应该运行较新的版本。
在上述步骤中,整个集群在升级过程中不应停止服务请求。

日期:2020-09-17 00:11:43 来源:oir作者:oir