本文介绍云数据库MongoDB支持升级的数据库大版本以及如何升级数据库大版本。升级大版本时,系统会自动升级到该大版本的最新可用小版本。
注意事项
-
协议要求:升级分片集群实例的数据库大版本时,实例的协议类型需为MongoDB协议。
-
磁盘空间要求:升级数据库大版本时,建议实例的磁盘使用率不超过 90%。升级过程中会写入临时文件,剩余磁盘空间不足(例如低于磁盘总量的 20%)可能导致升级失败或实例异常。如果当前剩余磁盘空间不满足要求,请先扩容磁盘,确保剩余空间不低于磁盘总量的 20% 后再执行升级。
-
升级方式与影响:
-
自动重启:升级采用轮转升级的方式进行,升级过程中会自动对实例进行2~3次重启,请在业务低峰期执行并确保应用程序具有重连机制。
-
性能影响:从MongoDB 5.0开始,默认的writeConcern从
{w:1}调整为{w:majority}。如果您的实例大版本从4.4升级到5.0,可能会出现比较明显的写入性能退化。说明-
跨版本升级时,后台会逐步升级大版本(例如3.0版升级到4.2,系统不会直接升级到4.2,而是逐步升级至4.2),每升级一次就发生一次闪断。
-
推荐生产环境的应用程序通过ConnectionStringURI地址连接数据库。
通过ConnectionStringURI地址连接实例,可以确保连接的节点始终为主节点(Primary),不会因为主备切换而影响应用的读写操作。如何通过ConnectionStringURI地址连接数据库,请参见副本集实例连接说明或分片集群实例连接说明。
-
-
-
平衡器状态:升级过程中,分片集群实例的平衡器将被关闭,升级完成后会被重新打开。
-
版本降级:升级数据库大版本后不支持降级数据库大版本。
-
备份恢复:升级数据库大版本后,低版本的备份数据不能恢复至云数据库MongoDB实例。您可以下载备份文件,将低版本的备份数据恢复至自建数据库。如何将备份数据恢复至自建数据库,请参见云盘备份数据恢复或本地盘备份数据恢复。
-
升级耗时:升级耗时与实例数据量、库表数量、版本升级跨度等因素有关。以下数据仅供参考,具体升级耗时请以实际操作为准。
-
云盘版:升级耗时约为15分钟。
-
本地盘版:临近版本的升级,其耗时接近于实例重启耗时,一般为分钟级别。
-
从 MongoDB 3.4 升级到 4.0 等临近版本升级通常耗时 1~5 分钟,期间会触发 2~3 次重启,每次闪断约 30 秒,且耗时与磁盘使用率无关。建议在业务低峰期执行升级,并确保应用程序具备重连机制。
-
支持升级的数据库大版本
-
云数据库 MongoDB 版控制台可以直接升级数据库大版本,但不同产品架构、不同版本的实例支持升级的版本不同,具体情况如下:
产品架构
规格类型
实例的数据库大版本
可升级到的数据库大版本
单节点架构
通用型云盘版
MongoDB 4.0
暂无更高的数据库大版本可升级。
通用型云盘版
MongoDB 3.4
支持升级至 MongoDB 4.0。
副本集架构
-
通用型云盘版
-
独享型云盘版
MongoDB 8.0
MongoDB 8.3
MongoDB 7.0
MongoDB 8.0
MongoDB 6.0
MongoDB 7.0
MongoDB 5.0
MongoDB 6.0
MongoDB 4.4
MongoDB 5.0
实例从4.4升级到5.0后,由于默认的writeConcern从
{w:1}调整为{w:majority},可能会导致写入性能退化,写入延迟上升。请确认此变更带来的影响后,再进行大版本升级。-
通用型本地盘版
-
独享型本地盘版
-
独占物理机
MongoDB 4.2
不支持升级数据库大版本。
如果您需要升级数据库大版本,可以通过创建新实例,使用新实例替换旧实例。
MongoDB 4.0
MongoDB 4.2
MongoDB 3.4
-
MongoDB 4.0
-
MongoDB 4.2
MongoDB 3.2
MongoDB 3.0
分片集群架构
独享型云盘版
MongoDB 8.0
MongoDB 8.3(需提交工单申请)
MongoDB 7.0
MongoDB 8.0
MongoDB 6.0
MongoDB 7.0
MongoDB 5.0
MongoDB 6.0
MongoDB 4.4
MongoDB 5.0
实例从4.4升级到5.0后,由于默认的writeConcern从
{w:1}调整为{w:majority},可能会导致写入性能退化,写入延迟上升。请确认此变更带来的影响后,再进行大版本升级。-
通用型本地盘版
-
独享型本地盘版
-
独占物理机
MongoDB 4.2
不支持升级数据库大版本。
如果您需要升级数据库大版本,可以通过创建新实例,使用新实例替换旧实例。
MongoDB 4.0
MongoDB 4.2
MongoDB 3.4
-
MongoDB 4.0
-
MongoDB 4.2
MongoDB 3.2
MongoDB 3.0
-
-
如果您需要跨产品架构或跨存储类型升级实例大版本,可以先创建目标高版本实例,然后通过DTS将源实例迁移至高版本的新实例中。
迁移数据的方法如下:
准备工作:兼容性测试
升级数据库大版本之前,请先按照如下步骤进行兼容性测试。
-
单可用区或多可用区不影响数据库大版本升级测试。测试实例与待升级实例的地域、VPC 和实例规格保持一致即可。
-
升级前请检查客户端驱动兼容性。例如,从 MongoDB 3.4 升级到 4.0 时,如果使用 Spring XML 连接配置,建议将驱动升级至 4.11.2,可保留现有
replica-set、socket-timeout等参数配置。如果仍使用 3.3 等旧版驱动,建议升级至 3.6 或更高版本,以完整支持新版本特性。
操作步骤
-
登录MongoDB管理控制台。
-
根据实例类型,在左侧导航栏,单击副本集实例列表或分片集群实例列表。
-
在页面左上角,选择实例所在的资源组和地域。
-
单击目标实例ID或目标实例所在行操作列的管理。
-
在规格信息区域,将鼠标移动至升级数据库版本上,单击需要升级的数据库大版本。
-
在弹出的升级数据库版本对话框中,单击确定。
升级完成后,若控制台仍显示正在升级中,请刷新浏览器页面查看最新状态。