将 MongoDB 升级到 3.2

在本页面

在尝试任何升级之前,请熟悉本文档的内容。

如果您需要有关升级到 3.2 的指导,请使用MongoDB 提供 3.2 升级服务来确保平稳过渡而不会中断您的 MongoDB 应用程序。

升级建议和清单

升级时,请考虑以下事项:

Upgrade Requirements

要将现有的 MongoDB 部署升级到 3.2,必须运行 3.0 系列发行版。

要从 2.6 系列发行版升级,您必须*升级到最新的 3.0 系列发行版,然后再升级到 3.2. 有关从 2.6 系列升级到 3.0 系列发行版的过程,请参阅升级到 3.0

Preparedness

在开始升级之前,请参阅MongoDB 3.2 中的兼容性更改文档,以确保您的应用程序和部署与 MongoDB 3.2 兼容。开始升级之前,请解决部署中的不兼容性。

在升级 MongoDB 之前,请务必先在临时环境中测试应用程序,然后再将升级部署到生产环境中。

将独立 mongod 实例升级到 MongoDB 3.2

以下步骤概述了将独立的mongod从版本 3.0 升级到 3.2 的过程。要从 2.6 升级到 3.2,请先升级到最新的 3.0 系列版本 首先,然后使用以下过程从 3.0 升级到 3.2.

使用软件包 Management 器升级

如果从 MongoDB aptyumdnfzypper存储库安装了 MongoDB,则应使用程序包 Management 器升级到 3.2. 遵循适用于您的 Linux 系统的installation instructions。这将涉及为新版本添加存储库,然后执行实际升级。

Manual Upgrade

否则,您可以手动升级 MongoDB:

下载 3.2 二进制文件。

MongoDB 下载页面下载 3.2 系列最新版本的二进制文件。有关更多信息,请参见Install MongoDB

替换为 3.2 二进制文件

关闭您的mongod实例。将现有二进制文件替换为 3.2 mongod二进制文件,然后重新启动mongod

Note

MongoDB 3.2 在某些mongod故障时会生成核心转储。对于生产环境,您可能希望关闭 os 的核心转储(如果尚未关闭)。

将副本集升级到 3.2

Prerequisites

在将所有副本集成员升级到版本 3.2 之前,它们必须运行 3.0 版。要从早期的 MongoDB 版本将副本集的所有成员升级到最新的 3.0 系列版本 * first *升级副本集,然后按照以下步骤从 MongoDB 3.0 升级到 3.2.

Upgrade Binaries

您可以使用“滚动”升级从 MongoDB 3.0 升级到 3.2,以通过在其他成员可用时分别升级成员来最大程度地减少停机时间:

避免重新配置包含不同 MongoDB 版本成员的副本集,因为验证规则在 MongoDB 版本之间可能有所不同。

升级副本集的辅助成员。

一次升级一个副本集的secondary个成员:

降级主要副本集。

mongoShell 连接到主要数据库,并使用rs.stepDown()降低主要数据库并强制选择新的主要数据库:

升级主数据库。

rs.status()显示主要数据库已卸任,另一个成员已处于PRIMARY状态时,请升级已卸任的主要数据库:

副本集故障转移不是即时的,并且将使该集不可用,直到故障转移过程完成为止。这可能需要 30 秒或更长时间:在计划的维护时段内计划升级过程。

Note

MongoDB 3.2 在某些mongod故障时会生成核心转储。对于生产环境,您可能希望关闭 os 的核心转储(如果尚未关闭)。

将分片群集升级到 3.2

Prerequisites

有关分片命令的完整列表,请参见Sharding Reference。并非Sharding Reference页上的所有命令都修改群集元数据。

Upgrade Binaries

禁用平衡器。

禁用平衡器所述禁用平衡器。

升级碎片。

一次升级一个碎片。如果这些分片是副本集,则对于每个分片:

mongoShell 连接到主要数据库,并使用rs.stepDown()降低主要数据库并强制选择新的主要数据库:

rs.stepDown()

升级配置服务器。

一次以mongosconfigDB--configdb设置的相反 Sequences 升级一个配置服务器。也就是说,如果mongos具有以下--configdb列表:

mongos --configdb confserver1:port1,confserver2:port2,confserver3:port2

首先升级confserver3,然后升级confserver2,最后是confserver1

configDB设置中列出的最后一个配置服务器开始:

mongod --configsvr --port <port> --dbpath <path>

如果使用configuration file,则在文件中指定sharding.clusterRole: configsvrnet.port

sharding:
   clusterRole: configsvr
net:
   port: <port>
storage:
   dbpath: <path>

重复configDB设置中列出的配置服务器* second ,最后重复configDB设置中列出的配置服务器 first *。

升级 mongos 实例。

将每个mongos实例替换为 3.2 二进制文件并重新启动。

mongos --configdb <cfgsvr1:port1>,<cfgsvr2:port2>,<cfgsvr3:port3>

重新启用平衡器。

启用平衡器所述重新启用平衡器。

Note

MongoDB 3.2 在某些mongod故障时会生成核心转储。对于生产环境,您可能希望关闭 os 的核心转储(如果尚未关闭)。

分片的群集二进制文件升级到 3.2 后,现有的配置服务器将 continue 作为镜像mongod实例运行。有关将现有配置服务器升级到副本集的说明,请参阅将配置服务器升级到副本集(需要 MongoDB 版本 3.2.4 或更高版本)。

首页