本文适用对象为云数据库 MongoDB 版 3.4 版本的用户。如果您收到了"无法续费"的提示,或者想知道 3.4 版本到期后该怎么办,请阅读本指南。
我的实例受影响吗?
你在什么情况下需要看这一节:收到了 EOFS 相关通知,但不确定自己的实例是否受影响。
什么是 EOFS?
EOFS(End of Full Support,停止全面支持)是阿里云产品生命周期的一个阶段。MongoDB 3.4 版本已进入 EOFS 阶段,意味着:
时间节点 | 发生什么 | 对你的影响 |
2023年1月1日 | 停止新购(EOM) | 无法再新购 3.4 版本实例 |
2026年6月30日 | 停止续费及变配(EOFS) | 无法续费、无法转换付费类型、无法变配(扩容/降配) |
2026年12月31日 | 终止服务(EOS) | 实例资源释放,所有服务不可用 |
从 2026 年 6 月 30 日起,3.4 版本实例无法续费也无法变配。如果您到期后续费失败,这正是原因所在。
如何判断我的实例是否受影响?
登录 MongoDB 控制台。
在实例列表中查看您的实例的数据库版本列。
如果版本显示为 3.4,则您的实例受 EOFS 影响,需要尽快升级。
EOFS 后具体有哪些限制?
操作 | EOFS 后是否支持 |
继续使用现有实例(到期前) | 支持 |
续费 | 不支持(需升级后才能续费) |
变配(扩容磁盘/升配/降配) | 不支持 |
升级数据库大版本 | 支持(需满足升级条件) |
退订 | 支持 |
自动续费 | 自动失效 |
EOFS 后不能转为按量付费。到期后实例会进入 15 天锁定状态,期间无法访问。详见本文「来不及升级怎么办」部分。
我的实例能原地升级吗?升级路径速查
你在什么情况下需要看这一节:知道要升级,但不知道自己的实例能否在控制台直接升级,还是需要迁移。
升级路径速查表
根据您的实例架构和存储类型,找到对应的升级路径:
实例架构 | 存储类型 | 当前版本 | 可直接升级到 | 升级方式 |
单节点 | 本地盘版 | 3.4 | 4.0 | 控制台直接升级 |
副本集 | 本地盘版 | 3.4 | 4.0 或 4.2 | 控制台直接升级 |
分片集群 | 本地盘版 | 3.4 | 4.0 或 4.2 | 控制台直接升级 |
如果您需要升级到 4.2 以上的版本(如 5.0、6.0、7.0、8.0),需要先升级到 4.2,将本地盘实例迁移成云盘,然后才能逐步升级;或直接新建高版本实例通过 DTS 迁移。
单节点实例可以直接升级吗?
可以。3.4版本单节点实例可直接在控制台升级大版本。
本地盘实例最高可升级到4.2版本?
本地盘版实例通过控制台最高只能升级到 4.2。如果需要升级到 5.0 或更高版本,需要迁移到云盘实例后继续升级。如需升级到高版本,推荐新建高版本的云盘版实例然后通过 DTS 迁移数据。原因如下:
低版本和高版本之间可能存在不兼容情况,DTS迁移可以尽早暴露不兼容问题,而大版本升级之后无法回滚。大版本之间的兼容性,请参见MongoDB数据库大版本升级说明。
多次升级会导致多次闪断。大版本升级的影响,请参见升级数据库大版本。
3.4 版本能否直接升级到 4.2(跳过 4.0)?
3.4版本的副本集、分片集群实例可以支持直接升级到4.2版本。后台会逐步升级大版本(3.4 → 3.6 → 4.0 → 4.2),每升级一次发生一次闪断,您无需手动干预中间版本。
3.4版本的单节点实例,仅支持升级到4.0版本。
升级会怎样?影响评估
你在什么情况下需要看这一节:知道要升级,但担心升级会影响业务,不敢操作。
升级会中断多久?
副本集、分片集群:过程中会有1~2次主备切换,每次切换产生约30秒的闪断。
说明跨版本升级(如 3.4 升级到 4.2),后台会逐步升级大版本,每一次升级都会触发多次切换,且会有1~2次闪断。请在业务低峰期执行升级,并确保应用程序具有重连机制。
降低影响:推荐生产环境的应用程序通过ConnectionStringURI地址连接数据库。
通过ConnectionStringURI地址连接实例,可以确保连接的节点始终为主节点(Primary),不会因为主备切换而影响应用的读写操作。如何通过ConnectionStringURI地址连接数据库,请参见副本集实例连接说明或分片集群实例连接说明。
单节点实例:过程中会自动重启实例,业务会中断2分钟左右。
升级会丢数据吗?
不会。 升级过程不会导致数据丢失。但建议在升级前手动创建一次全量备份,以防万一。
升级后账号密码会变吗?
不会变。 账号和密码在升级后保持不变。
升级后连接地址会变吗?
原地升级(副本集/分片集群本地盘版):连接地址不变。
DTS 迁移(单节点实例):新实例的连接地址与原实例不同,需要在升级完成后修改业务代码中的连接配置。
推荐使用 ConnectionStringURI 高可用连接地址连接数据库。通过 ConnectionStringURI 连接,可以确保连接的节点始终为主节点(Primary),不会因为升级过程中的主备切换而影响读写。
升级后能回滚吗?
不能。 升级数据库大版本后不支持降级。升级前请务必做好兼容性测试和数据备份。
升级数据库大版本后,低版本的备份数据不能恢复至云数据库 MongoDB 实例。您可以下载备份文件,将低版本的备份数据恢复至自建数据库。详见备份数据恢复。
升级前需要检查磁盘空间吗?
需要。 建议升级前磁盘剩余空间不低于 20%,以确保升级过程有足够的空间完成数据重组。当前已进入 EOFS 阶段,无法再扩容磁盘。如果磁盘空间不足 20%,可尝试以下方案:
清理冗余数据:删除已废弃的集合、索引或临时数据,释放空间后再升级。
直接尝试升级:20% 是建议值而非硬性门槛,空间略低时升级仍可能成功。如果升级过程中因空间不足失败,系统会自动回滚,实例状态不受影响。
改用 DTS 迁移:购买一个磁盘空间更大的高版本新实例,通过 DTS 将数据迁移过去,迁移完成后释放旧实例。此方案不受磁盘空间限制。
升级有哪些兼容性风险?
3.4 升级到 4.0 和 4.2 时,各版本引入的兼容性变更如下:
升级到 4.0(中间经过 3.6):
变更项 | 说明 |
| 不再返回单个文档,改为返回 |
| 不再支持 |
数组排序 |
|
更新操作 | 同时更新多个字段时,新字段按字典顺序添加 |
| 添加全局写锁,直到索引重建完成 |
| 不再支持(4.2 中正式删除) |
升级到 4.2(中间经过 3.6 → 4.0 → 4.2,包含上述所有变更,另增加以下内容):
变更项 | 说明 |
| 删除(3.4 起弃用,4.2 正式删除),请改用 |
| 删除(4.0 起不再支持,4.2 正式删除) |
| 不再支持,请改用 |
| 不再支持,请改用 |
| 不再支持 |
| 不再支持 |
Retryable Writes | 开源驱动默认启用 |
MongoDB 4.0 中 group 命令仍可使用但已标记为弃用,4.2 才正式移除。如果您的代码中使用了 group 命令,升级到 4.2 前必须改为 aggregate 或 mapReduce。
完整的各版本兼容性变更说明,请参见 MongoDB 数据库大版本升级说明。
升级前检查清单
你在什么情况下需要看这一节:已确定升级路径,准备开始升级操作。
在开始升级前,请逐项确认:
确认实例架构(单节点/副本集/分片集群)和存储类型(本地盘)
如为分片集群,确认实例协议类型为 MongoDB 协议(DynamoDB 协议实例不支持升级)
如为分片集群,了解升级过程中平衡器会被自动关闭,升级完成后自动重新打开
确认升级路径(控制台直接升级 or DTS 迁移)
确认目标版本(4.0 or 4.2)
检查磁盘剩余空间不低于 20%
手动创建一次全量备份
检查代码中是否使用了已移除的命令(
group、copydb、clone、geoNear、cloneCollection、repairDatabase等)确认 Java Driver 版本兼容目标 MongoDB 版本
确认应用程序具有重连机制
选择业务低峰期执行升级
使用 ConnectionStringURI 高可用连接地址
升级操作步骤
你在什么情况下需要看这一节:已完成升级前检查,需要具体的操作步骤。
控制台直接升级(副本集/分片集群)
步骤 1:手动备份
升级前,建议手动创建一次全量备份。由于升级后不支持降级,必要时可将备份数据恢复到新建实例以快速恢复业务。
步骤 2:检查磁盘空间
确保磁盘剩余空间不低于 20%。如空间不足,参见磁盘空间不足的替代方案。
步骤 3:执行升级
登录 MongoDB 控制台。
在实例列表中,单击目标实例 ID,进入实例基本信息页面。
在实例基本信息区域,将鼠标移动至升级数据库版本上,单击需要升级的数据库大版本(4.0 或 4.2)。
在弹出的确认对话框中,单击确定。
升级大版本时,系统会自动升级到该大版本的最新可用小版本。
步骤 4:等待升级完成
升级过程中实例状态会显示为"升级中"。
升级过程中会有 2~3 次约 30 秒的闪断,请确保应用程序具有重连机制。
升级完成后,实例状态恢复为"运行中"。
如果升级任务长时间显示"升级中",可以修改切换时间为"立即切换"来加速完成。
升级后验证
升级完成后,请进行以下验证:
版本确认:在控制台确认实例的数据库版本已变更为目标版本。
连接测试:使用客户端连接实例,确认连接正常。
数据完整性:检查关键业务数据是否完整。
应用功能:测试核心业务功能是否正常。
性能监控:观察升级后的性能指标是否正常。
来不及升级怎么办?
你在什么情况下需要看这一节:实例即将到期但来不及完成升级,或者实例已经过期锁定。
实例即将到期但来不及升级
如果您在实例到期前无法完成升级,请尽快提交工单说明以下信息:
实例 ID
当前到期时间
升级计划和时间表
技术支持团队会根据您的具体情况协助处理。
实例已经过期并锁定
如果实例已经过期并进入锁定状态:
锁定时间线:实例到期后的第 1~15 天处于锁定状态,无法访问。到期后的第 16 天,实例的计算资源会被释放。到期后的第 23 天,数据不再保留。
警告上述时间线仅适用于3.4版本副本集实例。
单节点实例、本地盘版分片集群实例释放后不支持从回收站恢复。请在实例锁定期间(到期后第 1~15 天)尽快升级大版本。切勿等到计算资源释放后再处理。详见回收站注意事项。
恢复方式:锁定状态下的MongoDB实例允许升级大版本。因此您可以先升级大版本,再进行续费。
恢复后立即升级:恢复访问后,请尽快升级数据库大版本。
常见问题(FAQ)
Q1:实例即将到期,无法续费,应如何处理?
A:单节点、副本集或分片集群,都可以直接在控制台升级到 4.0 或 4.2,升级后即可正常续费。如有特殊情况,请立即提交工单说明。
Q2:自动续费失效的原因
A:3.4 版本从 2026 年 6 月 30 日起停止续费服务,自动续费会因此失效。系统会在 EOFS 日期前通过短信和站内信通知。您需要升级数据库大版本后才能恢复续费。
Q3:升级到 4.0 还是 4.2?
A:
如果您的代码中使用了
group命令,建议先升级到 4.0(4.0 中group仍可用但已弃用),完成代码改造后再升级到 4.2。如果没有使用
group命令,可以直接升级到 4.2。4.2 支持控制台空间回收(compact),4.0 不支持。
Q4:升级后 Java 代码是否需要修改?
A:3.4 升级到 4.0/4.2 通常不需要修改 Java 代码,但请确认:
没有使用
group命令(4.2 移除)没有使用
copydb、clone、cloneCollection、geoNear、repairDatabase等已移除的命令Java Driver 版本兼容目标 MongoDB 版本(建议使用 MongoDB 官方推荐的 Driver 版本,参见 Driver Compatibility Matrix)
Q5:200G 数据迁移需要多久?
A:使用 DTS 迁移,200G 数据通常在小时级别完成。全量迁移免费,无流量费。如果需要增量迁移(无缝切换),需先开启源实例的 oplog。
Q6:升级过程中能否取消?
A:升级任务运行中无法取消。但您可以修改切换时间往后延,等业务低峰期再切换。建议在业务低峰期发起升级。
Q7:升级后副本集控制台只显示 2 个节点
A:这是正常现象。副本集的 Hidden 节点默认不在控制台显示。实例实际仍然是三节点架构,不影响高可用。
Q8:实例过期后数据是否保留?
A:3.4版本仅有本地盘版。
实例架构 | 保留策略 | 如何处理 |
单节点、分片集群实例 |
| 在第16天之前,完成大版本升级和续费。 |
副本集实例 |
| 在第23天之前,完成大版本升级和续费。 |
续费恢复访问后可导出数据,导出完成后可以退订实例。
Q9:3.4 到 4.0 有没有兼容性问题?
A:3.4 到 4.0 没有已知的高风险兼容性问题。主要的变更包括 aggregate 返回 cursor 而非单个文档、不再支持 snapshot 查询选项、reIndex 添加全局写锁等。建议在升级前参照兼容性变更清单进行代码排查。
Q10:EOFS 后能否转为按量付费?
A:不能。EOFS 后既不能续费也不能转按量付费。到期后实例会进入 15 天锁定期,之后释放资源。唯一的解决方案是升级数据库大版本。
Q11:没有运维人员,如何完成升级?
A:建议:
提交工单,说明您的实例信息和升级需求,技术支持团队会提供协助。
联系阿里云合作伙伴提供升级服务。
Q12:升级时报错 "InvalidSaleComponentFault"
A:这通常是因为选择的规格在目标版本中不存在。例如独享型可能没有 8核32GB 的规格。请在升级时选择目标版本支持的规格,或提交工单确认可用规格列表。
Q13:Navicat 无法连接 3.4 实例
A:3.4 版本与高版本 Navicat 驱动可能存在兼容性问题。建议使用较低版本的 Navicat 驱动,或使用 mongo shell / mongosh 连接。升级到 4.0/4.2 后可使用最新版 Navicat。
附录:相关文档
文档名称 | 说明 |
官方升级操作文档 | |
官方生命周期说明 | |
兼容性变更说明 | |
过期/锁定实例恢复 | |
DTS 迁移操作指南 |