参考 > 发行说明 > MongoDB 3.2发行说明 > 将MongoDB升级到3.2
在尝试进行任何升级之前,请熟悉本文档的内容。
如果您需要有关升级到3.2的指导,则MongoDB提供3.2升级服务,以确保平稳过渡而不会中断您的MongoDB应用程序。
升级时,请考虑以下事项:
要将现有的MongoDB部署升级到3.2,必须运行3.0系列发行版。
要从2.6系列发行版升级,必须先升级到最新的3.0系列发行版,然后再升级到3.2。有关从2.6系列版本升级到3.0系列版本的过程,请参阅升级到3.0。
在开始升级之前,请参阅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。
您必须将所有副本集成员都运行版本3.0,然后才能将它们升级到版本3.2。要从早期的MongoDB版本升级副本集, 请先将副本集的所有成员升级到最新的3.0系列发行版,然后按照从MongoDB 3.0升级到3.2的过程进行操作。
您可以使用“滚动”升级从MongoDB 3.0升级到3.2,以通过在其他成员可用时分别升级成员来最大程度地减少停机时间:
避免重新配置包含不同MongoDB版本成员的副本集,因为验证规则可能在MongoDB版本之间有所不同。
一次升级 一个副本集的辅助成员:
mongod
实例并将3.0二进制文件替换为3.2二进制文件。SECONDARY
状态,然后再升级下一个辅助成员。要检查成员的状态,请rs.status()
在
mongo
shell中发出。将mongo
外壳连接到主要数据库,并用于
rs.stepDown()
降低主要数据库并强制选择新的主要数据库:
当rs.status()
显示主节点已卸任并且另一成员已PRIMARY
处于状态时,请升级已卸除的主抵押:
mongod
二进制文件替换
为3.2二进制文件。副本集故障转移不是即时的,并且在故障转移过程完成之前,副本集将无法接受写入。这可能需要30秒或更长时间:在计划的维护时段内计划升级过程。
注意
MongoDB 3.2在发生某些mongod
故障时会生成核心转储。对于生产环境,您可能希望关闭操作系统的核心转储(如果尚未关闭)。
要将分片群集升级到3.2,群集的所有成员必须至少为3.0版。升级过程将检查群集的所有组件,如果有任何组件运行的版本早于3.0,则会产生警告。
升级期间,请确保客户端不对集合元数据进行更改。例如,在升级过程中,千万不能 执行以下操作:
sh.enableSharding()
sh.shardCollection()
sh.addShard()
db.createCollection()
db.collection.drop()
db.dropDatabase()
config
数据库可选,但推荐。作为预防措施,在升级分片群集之前,请对config
数据库进行备份
。
一次升级一个碎片。如果这些分片是副本集,则对于每个分片:
一次升级 一个副本集的辅助成员:
mongod
实例并将3.0二进制文件替换为3.2二进制文件。SECONDARY
状态,然后再升级下一个辅助成员。要检查成员的状态,请rs.status()
在
mongo
shell中发出。降级主副本集。
将mongo
外壳连接到主要数据库,并用于
rs.stepDown()
降低主要数据库并强制选择新的主要数据库:
当rs.status()
显示主节点已卸任并且另一成员已PRIMARY
处于状态时,请升级已卸除的主抵押:
mongod
二进制文件替换
为3.2二进制文件。升级在相反的顺序时的配置服务器的一个
configDB
或--configdb
设定为
mongos
。即,如果mongos
具有以下--configdb
列表:
先升级confserver3
,那么confserver2
,最后
confserver1
。
从configDB
设置中列出的最后一个配置服务器开始
:
停止配置服务器并替换为3.2二进制文件。
使用--configsvr
和
--port
选项启动3.2二进制文件:
如果使用配置文件,请在文件中指定
和:sharding.clusterRole: configsvr
net.port
注意
MongoDB 3.2在发生某些mongod
故障时会生成核心转储。对于生产环境,您可能希望关闭操作系统的核心转储(如果尚未关闭)。
分片的群集二进制文件升级到3.2后,现有的配置服务器将继续作为镜像mongod
实例运行。有关将现有配置服务器升级到副本集的说明,请参阅将配置服务器升级到副本集(需要MongoDB版本3.2.4或更高版本)。