维护窗口¶
如果您的安装包括副本集,请在预定义的维护时段内计划升级。
在本页面
MongoDB版本控制具有以下形式:
X.Y.Z
whereZ
指的是修订/补丁号。修订版提供了安全修补程序,错误修复程序以及新的或更改的功能,这些功能通常不包含任何向后突破的更改。始终升级到发行系列中的最新版本。
有关版本控制的更多信息,请参阅MongoDB版本控制。
确保您拥有数据集的最新备份。请参阅 MongoDB备份方法。
重要
从MongoDB 4.0.7开始,更改流使用版本1的v1
恢复令牌。低于4.0.7的MongoDB版本使用v0
恢复令牌。
从MongoDB 4.0.6或更早版本升级到MongoDB 4.0.7或更高版本时,客户端可能会v1
在连接到尚未更新的成员(即仅接受v0
或BinData令牌)而失败时尝试使用新的恢复令牌恢复更改流。。在这种情况下,客户端必须等待升级完成才能恢复更改流。
从MongoDB 3.6开始,"majority"
默认情况下,MongoDB启用对读取关注的支持
。
您可以禁用读取关注,"majority"
以防止存储高速缓存压力使具有主次仲裁器(PSA)架构的部署无法实现。然而,
禁用"majority"
读取关注会禁用对MongoDB 4.0及更早版本的变更流的支持。对于MongoDB 4.2+,禁用读取关注"majority"
不会影响更改流的可用性。
禁用"majority"
读取关注会影响对分片群集上事务的支持
。特别:
"snapshot"
如果事务涉及已禁用读取关注“多数”的分片,则该事务不能使用读取关注。"majority"
。但是,它不影响
副本集上的事务。对于副本集上的事务,即使禁用了读取关注,也可以为多文档事务指定读取关注"majority"
(或"snapshot"
或"local"
)"majority"
。
有关更多信息,请参见禁用多数阅读关注。
在升级生产环境之前,请使用本文档中的过程来升级可复制您的生产环境的过渡环境,以确保您的生产配置与所有更改兼容。
重要
升级MongoDB之前,请始终备份所有数据。
使用此处描述的过程分别升级每个二进制文件mongod
和mongos
二进制文件。升级二进制文件时,请使用升级MongoDB实例过程。
请遵循以下升级过程:
重要
升级MongoDB之前,请始终备份所有数据。
本节介绍如何通过替换现有二进制文件来升级MongoDB。升级的首选方法是使用操作系统的程序包管理工具和官方的MongoDB程序包,如Install MongoDB中所述。
要通过替换现有的二进制文件来升级mongod
或mongos
实例,请执行以下操作:
升级副本集,单独升级每个部件,开始与次级和与精加工 初级。在预定义的维护时段内计划升级。
注意
从MongoDB 4.0.7开始,更改流使用版本1 v1
恢复令牌。低于4.0.7的MongoDB版本使用v0
恢复令牌或BinData恢复令牌。
从MongoDB 4.0.0-4.0.6升级到MongoDB 4.0.7或更高版本时,客户端可能会v1
在连接到尚未更新的成员(即仅接受v0
令牌或BinData)时尝试使用新的恢复令牌恢复更改流。失败了 在这种情况下,客户端必须等待升级完成才能恢复更改流。
分别升级每个辅助节点,如下所示:
mongod
按照升级MongoDB实例中的说明升级辅助数据库的二进制文件。
升级辅助节点后,请等待辅助节点恢复到SECONDARY
状态,然后再升级下一个实例。要检查成员的状态,请rs.status()
在
mongo
shell中发出。
中学可能会短暂进入STARTUP2
或RECOVERING
。这个是正常的。SECONDARY
在继续升级之前,请确保等待辅助服务器完全恢复到正常状态。
降级主数据库以启动正常的故障转移过程。使用以下之一:
rs.stepDown()
助手mongo
。replSetStepDown
数据库命令。在故障转移期间,集合不能接受写入。通常,这需要10到20秒。在预定义的维护时段内计划升级。
注意
与直接关闭主数据库相比,最好 关闭主数据库。降级可加快故障转移过程。
一旦主数据库降级,请rs.status()
从mongo
外壳程序调用该方法,直到看到另一个成员已处于PRIMARY
状态为止。
按照升级MongoDB实例中的说明关闭原始主实例并升级其实例。
在版本3.4中更改:该过程适用于4.2。要对MongoDB分片群集的其他版本进行版本升级,请参考手册的相应版本。
注意
从MongoDB 4.0.7开始,更改流使用版本1 v1
恢复令牌。低于4.0.7的MongoDB版本使用v0
恢复令牌或BinData恢复令牌。
从MongoDB 4.0.6或更早版本升级到4.0.7或更高版本时,分片群集的成员将继续生成v0
或BinData恢复令牌,直到mongos
更新实例为止。升级后的mongos
实例将开始产生v1
变更流恢复令牌。这些令牌不能用于在mongos
尚未升级到4.0.7或更高版本的上恢复流。
要升级4.2分片群集:
如禁用平衡器中所述,禁用群集的平衡器 。
升级配置服务器。
要升级配置服务器副本集,请使用“ 升级副本集”中的过程 。
升级每个碎片。
升级配置服务器和分片后,请mongos
按照升级MongoDB实例中的说明升级每个实例
。您可以mongos
按任何顺序升级
实例。
如启用平衡器中所述重新启用平衡器。