升级到 MongoDB 企业版(分片集群)
MongoDB 企业版提供了 MongoDB 社区版中没有的各种功能,例如
以下步骤概述了将分片集群从 MongoDB 社区版升级到 MongoDB 企业版的程序。例如,这些步骤可用于将 MongoDB 7.0 社区版升级到 MongoDB 7.0 企业版。
考虑因素
警告
不要使用这些说明来升级到其他版本。要升级版本,请参阅相应的版本升级说明,例如 升级到 MongoDB 8.0。
下载企业版二进制文件
根据您的操作系统,您可以通过软件包管理器或手动下载二进制文件来安装 MongoDB 企业版。
如果您已使用软件包管理器安装 MongoDB 社区版,请按照操作系统对应的软件包管理器说明进行操作
在安装过程中,软件包管理器将删除社区版软件包;这不会影响正在运行的部署,直到您重新启动。
如果您没有使用软件包管理器安装 MongoDB,您可以从MongoDB 下载中心 手动下载 MongoDB 二进制文件。根据您的操作系统遵循手动说明,包括 MongoDB 企业版的特定先决条件
重要
将软件安装到与当前社区版不同的位置。
在升级过程中,您将使用现有的数据目录和,如果适用,现有的配置文件。
重要
如果您在同一台机器上安装了相同版本系列的社区版,则不能使用.msi
来安装企业版。也就是说,如果您已安装版本4.4.0的社区版,则不能使用.msi
来安装4.4.0或4.4.1的企业版。
从MongoDB 下载中心手动下载存档文件。
要安装,请将文件解压缩到与当前社区版不同的位置。
在升级过程中,您将使用现有的数据目录和,如果适用,现有的配置文件。
安装二进制文件
从MongoDB 下载中心手动下载存档文件。
将文件解压缩到与当前社区版不同的位置。有关解压缩文件的详细信息,请参阅macOS。
在升级过程中,您将使用现有的数据目录和,如果适用,现有的配置文件。
开始之前
从 MongoDB 8.0 版本开始,您可以使用directShardOperations
角色来执行需要直接对分片执行命令的维护操作。
警告
使用directShardOperations
角色运行命令可能会导致您的集群停止正常工作并可能造成数据损坏。仅将directShardOperations
角色用于维护目的或在 MongoDB 支持的指导下。完成维护操作后,请停止使用directShardOperations
角色。
程序
为了最小化停机时间,您可以通过逐个升级成员的方式,在其他成员可用的情况下,使用“滚动升级”从MongoDB社区版升级到企业版。
禁用平衡器。
连接到分片集群中的 mongosh
实例,并运行 mongos
,然后运行 sh.stopBalancer()
来禁用平衡器
sh.stopBalancer()
注意
如果在迁移过程中,系统将在停止平衡器之前完成正在进行的迁移。您可以通过运行 sh.isBalancerRunning()
来检查平衡器的当前状态。
要验证平衡器是否已禁用,请运行 sh.getBalancerState()
,如果平衡器已禁用则返回 false
sh.getBalancerState()
从 MongoDB 6.0.3 开始,不再执行自动分区分割。这是由于平衡策略的改进。自动分割命令仍然存在,但不会执行操作。
在 MongoDB 6.0.3 之前的版本中,sh.stopBalancer()
也会禁用分片集群的自动分割。
有关禁用平衡器的更多信息,请参阅 禁用平衡器。
升级配置服务器。
逐个升级副本集的次要成员
关闭次要
mongod
实例。重启具有企业功能的成员,使用
mongod
,指定相同的配置选项(例如,相同的数据目录、配置文件等)。在升级下一个二级成员之前,等待成员恢复到
SECONDARY
状态。要检查成员状态,在mongosh
中执行rs.status()
。
对每个剩余的二级成员重复此操作。
降低副本集主节点的优先级。
将
mongosh
连接到主节点,并使用rs.stepDown()
降低主节点优先级并强制进行新主节点的选举。rs.stepDown() 当
rs.status()
显示主节点已经降低优先级并且有其他成员成为主节点时,升级降低优先级的主节点。关闭降低优先级的主节点。
使用具有企业功能的
mongod
重新启动,指定相同的配置选项(例如,相同的数据目录、配置文件等)。
升级分片。
逐个升级分片。
对于每个分片副本集
逐个升级副本集的次要成员
关闭次要
mongod
实例。重启具有企业功能的成员,使用
mongod
,指定相同的配置选项(例如,相同的数据目录、配置文件等)。在升级下一个二级成员之前,等待成员恢复到
SECONDARY
状态。要检查成员状态,在mongosh
中执行rs.status()
。
对每个剩余的二级成员重复此操作。
降低副本集主节点的优先级。
将
mongosh
连接到主节点,并使用rs.stepDown()
降低主节点优先级并强制进行新主节点的选举。rs.stepDown() 当
rs.status()
显示主节点已经降低优先级并且有其他成员成为主节点时,升级降低优先级的主节点。关闭降低优先级的主节点。
使用具有企业功能的
mongod
重新启动,指定相同的配置选项(例如,相同的数据目录、配置文件等)。
重新启用均衡器。
使用 mongosh
连接到集群中的 mongos
并运行 sh.startBalancer()
以重新启用均衡器
sh.startBalancer()
从 MongoDB 6.0.3 开始,不再执行自动分区分割。这是由于平衡策略的改进。自动分割命令仍然存在,但不会执行操作。
在 MongoDB 6.0.3 之前的版本中,sh.startBalancer()
还会启用分片集群的自动拆分。
有关均衡器的更多信息,请参阅 启用均衡器。
重要
在使用任何企业功能之前,请确保所有成员都已升级到企业版。