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