MongoDB Enterprise 提供 MongoDB Community 版本中不提供的各种功能,例如:
自管理部署上的自管理LDAP代理身份验证和LDAP授权(在MongoDB 8.0 中已弃用。请参阅LDAP身份验证替代方案)
以下步骤概述了将分片集群从 MongoDB Community Edition 升级到 MongoDB Enterprise Edition 的过程。例如,这些步骤可用于将 MongoDB 7.0 Community 升级到 MongoDB 7.0 Enterprise。
考虑因素
警告
请勿使用这些说明升级到其他发布版本。
For general guidance on MongoDB version numbering, release types, and upgrade paths, see MongoDB Versions and Upgrade Paths.
下载企业版二进制文件
根据您的操作系统,您可以使用包管理器安装 MongoDB Enterprise 二进制文件,或手动下载该二进制文件。
如果您已使用包管理器安装了 MongoDB Community,请按照适合您操作系统的包管理器说明进行操作:
在安装过程中,包管理器将删除社区包;在重新启动之前,这不会影响正在运行的部署。
如果您尚未使用包管理器安装MongoDB ,则可以从MongoDB下载中心手动下载MongoDB二进制文件。 请按照适用于您的操作系统的手册说明进行操作,包括MongoDB Enterprise的特定先决条件:
重要
安装到与当前 MongoDB Community Edition 不同的位置。
在升级过程中,您将使用现有的数据目录和现有的配置文件(如果适用)。
重要
如果在同一计算机上安装了同一版本系列的MongoDB Community Edition,则无法使用.msi安装企业版。也就是说,如果您的版本为 4.4.0 安装MongoDB Community Edition后,无法使用.msi安装 4.4.0 或 4.4.1 企业版。
从MongoDB下载中心手动下载存档文件。
要进行安装,请将文件解压缩到与当前 MongoDB Community Edition 不同的位置。
在升级过程中,您将使用现有的数据目录和现有的配置文件(如果适用)。
安装二进制文件:
从MongoDB下载中心手动下载存档文件。
将文件解压缩到与当前MongoDB Community Edition不同的位置。 有关提取文件的详细信息,请参阅macOS。
在升级过程中,您将使用现有的数据目录和现有的配置文件(如果适用)。
步骤
为了最大限度地减少停机时间,您可以使用“滚动”升级从 MongoDB Community 升级到企业版,即在其他节点可用时单独升级节点。
禁用负载均衡器。
Connect mongosh to a mongos instance in the sharded cluster, and run sh.stopBalancer() to disable the balancer:
sh.stopBalancer()
注意
如果迁移正在进行,系统将在停止负载均衡器之前完成进行中的迁移。你可以运行 sh.isBalancerRunning() 以检查负载均衡器的当前状态。
要验证是否禁用了负载均衡器,请运行 sh.getBalancerState();如果已禁用负载均衡器,则会返回 false:
sh.getBalancerState()
从 MongoDB 6.0.3 开始,不再执行自动数据块分割。这是因为均衡策略的改进。自动分割命令仍然存在,但不执行操作。
在 6.0.3 之前的 MongoDB 版本中,sh.stopBalancer() 还会禁用分片集群的自动拆分。
有关禁用负载均衡器的更多信息,请参阅禁用负载均衡器。
升级配置服务器。
逐个升级副本集的从节点成员:
关闭从节点
mongod实例。使用 Enterprise
mongod重新启动节点,指定相同的配置选项(例如相同的数据目录、配置文件等)。Wait for the member to recover to
SECONDARYstate before upgrading the next secondary member. To check the member's state, issuers.status()inmongosh.
对每个剩余的从节点重复上述操作。
降级副本集主节点。
Connect
mongoshto the primary and users.stepDown()to step down the primary and force an election of a new primary:rs.stepDown() 当
rs.status()显示主节点已降级,并且另一个节点成为主节点时,升级已降级的主节点:关闭降级主节点。
使用 Enterprise
mongod重新启动,指定相同的配置选项(例如 相同的数据目录、配置文件等)。
升级分片。
一次升级一个分片。
对于每个分片副本集:
逐个升级副本集的从节点成员:
关闭从节点
mongod实例。使用 Enterprise
mongod重新启动节点,指定相同的配置选项(例如相同的数据目录、配置文件等)。Wait for the member to recover to
SECONDARYstate before upgrading the next secondary member. To check the member's state, issuers.status()inmongosh.
对每个剩余的从节点重复上述操作。
降级副本集主节点。
Connect
mongoshto the primary and users.stepDown()to step down the primary and force an election of a new primary:rs.stepDown() 当
rs.status()显示主节点已降级,并且另一个节点成为主节点时,升级已降级的主节点:关闭降级主节点。
使用 Enterprise
mongod重新启动,指定相同的配置选项(例如 相同的数据目录、配置文件等)。
重新启用负载均衡器。
Using mongosh, connect to a mongos in the cluster and run sh.startBalancer() to re-enable the balancer:
sh.startBalancer()
从 MongoDB 6.0.3 开始,不再执行自动数据块分割。这是因为均衡策略的改进。自动分割命令仍然存在,但不执行操作。
在 6.0.3 之前的 MongoDB 版本中,sh.startBalancer() 还支持分片集群的自动拆分。
有关负载均衡器的更多信息,请参阅启用负载均衡器。
重要
在使用任何企业版功能之前,请确保所有节点均已升级到企业版。