介绍如何执行a滚动重启之所以这样叫,是因为它涉及轮流停止和启动(或重新启动)每个节点,以便集群本身保持运行。这通常是作为滚动升级或滚动降级,其中集群的高可用性是强制的,并且不允许整个集群停机。当我们提到升级时,这里提供的信息一般也适用于降级。
滚动重启可能是可取的,原因有很多。这些将在接下来的几段中描述。
配置更改。要更改集群的配置,例如向集群添加SQL节点,或将配置参数设置为新值。
NDB集群软件升级/降级。将集群升级到NDB集群软件的新版本(或将其降级到旧版本)。这通常被称为”滚动升级”(或”滚动降级”,当返回到旧版本的NDB集群时)。
节点主机上的更改。更改正在运行一个或多个NDB集群节点进程的硬件或操作系统。
系统复位(集群复位)。重置集群,因为它已达到不希望的状态。在这种情况下,通常需要重新加载一个或多个数据节点的数据和元数据。有三种方法可以做到这一点:
启动每个数据节点进程(ndbd或可能ndbmtd)与
——初始
选项,强制该数据节点清除其文件系统,并从其他数据节点重新加载所有NDB集群数据和元数据。从NDB 8.0.21开始,这也会强制删除所有磁盘数据对象和与这些对象相关的文件。
方法创建备份ndb_mgm客户端
开始备份
命令。升级完成后,需要对使用的节点进行恢复ndb_restore.看到第23.5.8节“NDB集群在线备份”,第23.4.23节,“ndb_restore -恢复NDB集群备份”,以获取更多资料。
使用, mysqldump在升级之前创建备份;之后,使用恢复转储
加载数据
.
资源回收。释放先前按连续顺序分配给表的内存插入
而且删除
操作,供其他NDB Cluster表重用。
执行滚动重启的过程可以概括如下:
停止所有集群管理节点(ndb_mgmd进程),重新配置它们,然后重新启动它们。(见使用多个管理服务器进行滚动重新启动)。
停止、重新配置,然后重新启动每个集群数据节点(ndbd依次处理)。
一些节点配置参数可以通过发布来更新
重新启动
中的每个数据节点ndb_mgm客户端执行上一步。其他参数要求使用管理客户端完全停止数据节点停止
命令,然后通过调用ndbd或ndbmtd可执行文件。shell命令,例如杀了也可以在大多数Unix系统上用于停止数据节点进程,但是停止
命令是首选,通常更简单。)请注意在Windows上,你也可以使用SC停止而且SC开始命令,
净停止
而且网开始
命令或Windows服务管理器来停止和启动已作为Windows服务安装的节点(请参阅第23.2.2.4节“将NDB集群进程安装为Windows服务”).每个节点配置参数的文档中都指出了所需的重启类型。10bet官方网站看到第23.3.3节“NDB集群配置文件”.
停止,重新配置,然后重新启动每个群集SQL节点(mysqld依次处理)。
NDB集群支持一种灵活的升级节点顺序。升级NDB集群时,可以先升级API节点(含SQL节点),再升级管理节点、数据节点或同时升级管理节点和数据节点。换句话说,允许以任何顺序升级API和SQL节点。这须遵守下列规定:
此功能仅用于在线升级的一部分。来自不同NDB集群版本的混合节点二进制文件既不打算也不支持在生产环境中持续长期使用。
升级数据节点前,必须先升级所有管理节点。无论您以何种顺序升级集群的API和SQL节点,这都是正确的。
特定于”新”在所有管理节点和数据节点升级完成后,才能使用“Version”。
这也适用于任何MySQL服务器的版本变化,除了NDB引擎的版本变化,所以不要忘记在计划升级时考虑到这一点。(NDB集群在线升级一般都是这样。)
在节点重新启动期间,任何API节点都不可能执行模式操作(例如数据定义语句)。部分由于这种限制,在在线升级或降级期间也不支持模式操作。
使用多个管理服务器进行滚动重新启动。当对一个有多个管理节点的NDB集群执行滚动重启时,您应该记住这一点ndb_mgmd检查是否有其他管理节点正在运行,如果有,则尝试使用该节点的配置数据。防止这种情况发生,并强迫ndb_mgmd执行以下步骤重新读取配置文件。
在执行滚动重新启动以更新集群的配置时,可以使用config_generation
的列ndbinfo.nodes
表,以跟踪哪些数据节点已使用新配置成功重新启动。看到第23.5.14.38节,“ndbinfo节点表”.