文档菜单
文档首页
/
MongoDB 手册
/ / /

升级到 MongoDB 企业版(分片集群)

本页内容

  • 考虑因素
  • 下载企业版二进制文件
  • 开始之前
  • 步骤

MongoDB 企业版提供了 MongoDB 社区版中没有的各种功能,例如

  • 自托管部署的内存存储引擎

  • 审计自托管部署

  • 自托管部署上的 Kerberos 认证

  • 自托管 LDAP 代理认证自托管部署上的 LDAP 授权

  • 静态加密

以下步骤概述了将分片集群从 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的企业版。

  1. MongoDB 下载中心手动下载存档文件。

  2. 要安装,请将文件解压缩到与当前社区版不同的位置。

    在升级过程中,您将使用现有的数据目录和,如果适用,现有的配置文件。

安装二进制文件

  1. MongoDB 下载中心手动下载存档文件。

  2. 将文件解压缩到与当前社区版不同的位置。有关解压缩文件的详细信息,请参阅macOS。

    在升级过程中,您将使用现有的数据目录和,如果适用,现有的配置文件。

从 MongoDB 8.0 版本开始,您可以使用directShardOperations角色来执行需要直接对分片执行命令的维护操作。

警告

使用directShardOperations角色运行命令可能会导致您的集群停止正常工作并可能造成数据损坏。仅将directShardOperations角色用于维护目的或在 MongoDB 支持的指导下。完成维护操作后,请停止使用directShardOperations角色。

为了最小化停机时间,您可以通过逐个升级成员的方式,在其他成员可用的情况下,使用“滚动升级”从MongoDB社区版升级到企业版。

1

连接到分片集群中的 mongosh 实例,并运行 mongos,然后运行 sh.stopBalancer() 来禁用平衡器

sh.stopBalancer()

注意

如果在迁移过程中,系统将在停止平衡器之前完成正在进行的迁移。您可以通过运行 sh.isBalancerRunning() 来检查平衡器的当前状态。

要验证平衡器是否已禁用,请运行 sh.getBalancerState(),如果平衡器已禁用则返回 false

sh.getBalancerState()

从 MongoDB 6.0.3 开始,不再执行自动分区分割。这是由于平衡策略的改进。自动分割命令仍然存在,但不会执行操作。

在 MongoDB 6.0.3 之前的版本中,sh.stopBalancer() 也会禁用分片集群的自动分割。

有关禁用平衡器的更多信息,请参阅 禁用平衡器。

2
  1. 逐个升级副本集的次要成员

    1. 关闭次要 mongod 实例。

    2. 重启具有企业功能的成员,使用 mongod,指定相同的配置选项(例如,相同的数据目录、配置文件等)。

    3. 在升级下一个二级成员之前,等待成员恢复到 SECONDARY 状态。要检查成员状态,在 mongosh 中执行 rs.status()

    对每个剩余的二级成员重复此操作。

  2. 降低副本集主节点的优先级。

    mongosh 连接到主节点,并使用 rs.stepDown() 降低主节点优先级并强制进行新主节点的选举。

    rs.stepDown()
  3. rs.status() 显示主节点已经降低优先级并且有其他成员成为主节点时,升级降低优先级的主节点。

    1. 关闭降低优先级的主节点。

    2. 使用具有企业功能的 mongod 重新启动,指定相同的配置选项(例如,相同的数据目录、配置文件等)。

3

逐个升级分片。

对于每个分片副本集

  1. 逐个升级副本集的次要成员

    1. 关闭次要 mongod 实例。

    2. 重启具有企业功能的成员,使用 mongod,指定相同的配置选项(例如,相同的数据目录、配置文件等)。

    3. 在升级下一个二级成员之前,等待成员恢复到 SECONDARY 状态。要检查成员状态,在 mongosh 中执行 rs.status()

    对每个剩余的二级成员重复此操作。

  2. 降低副本集主节点的优先级。

    mongosh 连接到主节点,并使用 rs.stepDown() 降低主节点优先级并强制进行新主节点的选举。

    rs.stepDown()
  3. rs.status() 显示主节点已经降低优先级并且有其他成员成为主节点时,升级降低优先级的主节点。

    1. 关闭降低优先级的主节点。

    2. 使用具有企业功能的 mongod 重新启动,指定相同的配置选项(例如,相同的数据目录、配置文件等)。

4

对于每个 mongos 实例,关闭 mongos 并使用企业版 mongos 重新启动,指定相同的配置选项。

5

使用 mongosh 连接到集群中的 mongos 并运行 sh.startBalancer() 以重新启用均衡器

sh.startBalancer()

从 MongoDB 6.0.3 开始,不再执行自动分区分割。这是由于平衡策略的改进。自动分割命令仍然存在,但不会执行操作。

在 MongoDB 6.0.3 之前的版本中,sh.startBalancer() 还会启用分片集群的自动拆分。

有关均衡器的更多信息,请参阅 启用均衡器。

重要

在使用任何企业功能之前,请确保所有成员都已升级到企业版。

返回

副本集