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