You need to enable JavaScript to run this app.
文档中心
文档数据库 MongoDB 版

文档数据库 MongoDB 版

复制全文
下载 pdf
常见问题
实例变配
复制全文
下载 pdf
实例变配
本文汇总了文档数据库 MongoDB 版实例变配的常见问题。
文档数据库 MongoDB 版是否支持添加或减少节点或分片?
文档数据库 MongoDB 版支持两种实例类型,不同类型的 MongoDB 实例支持的变配方案不同。更多关于 MongoDB 实例支持的变配方案详情,请参见变更实例配置
在变更实例配置的预检查阶段出现了报错,该如何处理?
在执行变更实例配置操作前,文档数据库 MongoDB 版会预先对实例健康状态进行检查,确保实例各项健康监控指标符合变配要求,以降低因配置变更导致异常的可能性。
若在实例变配的预检查阶段出现了相关报错,您可以参考下表中的建议尝试解决。
错误码
问题原因
解决方案
Oplog window is too small for replica set %s.
Oplog 时间窗过小。
  1. 请参考收到实例 Oplog 保留窗过小的事件监控告警后该如何处理中的建议,先尝试修改 replication.oplogSizeMB 参数值。
  1. 若修改上述参数后仍无法解决,请提交工单联系技术支持进一步定位问题。
Insufficient connections: node %s has %d available, below the minimum limit of %d.
节点可用连接数不足。
  1. 根据业务实际所需的连接数,适当调大 net.maxIncomingConnections 的参数值。参数修改方法,请参见修改实例参数
  1. 若修改上述参数后仍无法解决,请提交工单联系技术支持进一步定位问题。
Replica set member %s is unhealthy.
副本集中存在健康状态异常的节点。
提交工单联系技术支持协助解决。
Primary not found in replica set %s.
副本集中未找到主节点。
Replication lag detected: member %s has latency %s.
节点主从复制延迟时间超过 300s。
Too many logical sessions: node %s has %d active sessions, exceeding the limit %d.
节点 logical sessions 数量超出限制。
Health check for the instance encountered an error.
实例健康检查失败。
为什么增加 Shard 分片时,实例会出现性能抖动(如业务访问延迟增加)?
当您通过扩容操作为实例增加 Shard 分片后,出于数据自动均衡的需要,MongoDB Balancer 会立刻启动搬迁流程。在搬迁完成后,原分片上的数据将会被删除。需要注意的是,MongoDB 在默认设置下,并未对数据迁移的数据量以及间隔时间加以限制。所以,从开启分片直至数据完全实现均衡的这一时间段内,如果您的 MongoDB 实例中已存在大量数据,primary shard 极有可能出现负载增加的情况。在这种情形下,时延敏感业务很可能会有明显感知,例如出现 CPU 使用率异常攀升、业务访问延迟加剧、页面响应速度变慢等状况。
若在为 MongoDB 实例增加 Shard 分片过程中出现上述问题,您可尝试通过修改以下 2 个参数来限制实例的数据迁移与清理速度。
说明
  • 通过调整下述参数,可在短期内减轻因负载均衡引起的性能抖动问题。然而,这也将导致新分片完成数据均衡的时间显著延长,需结合业务实际场景进行综合权衡。
  • 强烈建议您密切留意 MongoDB 实例的表数据量,并提前为实例启用分片功能。同时,为防止对线上业务造成影响,建议在业务低谷时段执行扩容分片操作。关于分片集群使用的更多建议,请参见 MongoDB 分片集群使用指南
  • 建议对需要分片的集合提前在分片键上创建索引,并优先选择取值多样、写入均衡、贴合查询的字段作为分片键,以保障数据均匀分布和查询效率。
  • 升配前,建议您提交工单联系技术支持,提供目标规格信息,由技术团队评估本次变配是否会触发数据迁移,并确认预计变配时长及可能产生的影响。
参数名称
说明
在范围迁移的清理阶段,每个删除批次的间隔时间。单位:毫秒。修改后立即生效,无需重启实例。具体操作请参见:修改实例参数
  • 参数设置建议
  • 若 MongoDB 实例负载较低且希望快速完成删除操作,可以适当降低间隔时间(例如设置为 10~50 毫秒)。
  • 若 MongoDB 实例资源有限,为避免产生过大的瞬时负载,特别是在生产环境中与其他关键操作同时进行时,可以适当增加间隔时间(例如设置为 100~500 毫秒)。
该参数指定了在范围迁移的清理阶段,每次批量删除的最大文档数。修改后立即生效,无需重启实例具体操作请参见:修改实例参数
  • 参数设置建议
  • 若需要处理的数据量较大,且 MongoDB 实例资源充足,可以适当增加每次删除的文档数量(例如设置为 1000~2000),来提高删除效率。
  • 若 MongoDB 实例资源有限,可以适当减少每次删除的文档数量(例如设置为 100~500),避免对系统造成过大的负载。
若通过调整上述参数后,性能抖动问题仍未缓解,或出现写入失败,请按以下步骤止损:
  • 查看 Balancer 运行状态
  • sh.isBalancerRunning()
  • 返回结果为 false(或返回结果中的 inBalancerRoundfalse),表示 Balancer 当前未在运行,可继续执行下一步。
  • 返回结果为 true(或返回结果中的 inBalancerRoundtrue),表示 Balancer 当前正在执行数据迁移,此时切勿强制停止,请稍后重试。
  • 停止 Balancer,暂停数据迁移
  • 确认 Balancer 未在运行后,执行以下命令。
  • sh.stopBalancer()
说明
  • 问题解决后如需重新开启 Balancer,可执行 sh.setBalancerState(true) 命令恢复数据自动均衡。
  • 提交工单联系技术支持介入排查。此时实例的现场状态、监控数据和日志信息最完整,有助于快速定位根因。
最近更新时间:2026.06.26 14:09:17
这个页面对您有帮助吗?
有用
有用
无用
无用