当云数据库MongoDB单节点实例、副本集实例、分片集群实例、分片集群实例中指定节点(任意一个Mongos节点或Shard节点)出现连接数满或性能问题时,您可以手动重启实例或指定节点。

注意事项

  • 重启实例期间会启停进程,系统会断开当前所有连接,请确保业务具有重连机制。
  • Mongod和Mongos进程启动时间通常都在30秒以内。但是当集合数量较多(超过1万),Mongod的启动时间可能达到分钟级别。进程没有启动完成之前,将无法连接对应节点,为了避免重启时间过长造成业务受损,建议将集合数量控制在1万以内。更多内容介绍,请参见MongoDB官网文档
  • 副本集实例重启后,可能会出现节点角色变化的情况,建议您在生产环境中使用ConnectionStringURI高可用连接地址。更多介绍,请参见副本集实例连接说明
  • 分片集群重启时,在Mongos进程重启时连接会断开,建议您在生产环境上使用ConnectionStringURI高可用连接地址,且ConnectionStringURI高可用连接地址中添加至少两个Mongos的连接地址。更多介绍,请参见分片集群实例连接说明

重启实例

  1. 登录MongoDB管理控制台
  2. 根据实例类型,在左侧导航栏,单击副本集实例列表分片集群实例列表
  3. 在页面左上角,选择实例所在的资源组和地域。
  4. 单击目标实例所在行操作列的更多,并选择重启
  5. 在弹出的重启实例对话框中,单击确定
    执行重启操作时,实例状态为重启中,当实例状态变更为运行中时,说明实例重启成功。

重启Mongos节点

  1. 登录MongoDB管理控制台
  2. 根据实例类型,在左侧导航栏,单击副本集实例列表分片集群实例列表
  3. 在页面左上角,选择实例所在的资源组和地域。
  4. 单击目标实例ID或目标实例所在行操作列的管理
  5. Mongos列表区域,单击目标Mongos节点所在行操作列的更多,并选择重启
  6. 在弹出的重启节点对话框中,单击确定
    执行重启操作时,实例状态为重启中,当实例状态变更为运行中时,说明Mongos节点重启成功。

重启Shard节点

  1. 登录MongoDB管理控制台
  2. 根据实例类型,在左侧导航栏,单击副本集实例列表分片集群实例列表
  3. 在页面左上角,选择实例所在的资源组和地域。
  4. 单击目标实例ID或目标实例所在行操作列的管理
  5. Shard列表区域,单击目标Shard节点所在行操作列的更多,并选择重启
  6. 在弹出的重启节点对话框中,单击确定
    执行重启操作时,实例状态为重启中,当实例状态变更为运行中时,说明Shard节点重启成功。

常见问题

  • 问题1:重启副本集实例时,系统后台具体操作流程是什么样的?对外服务有什么影响?

    系统会先重启Hidden节点,然后重启Secondary节点(重启完成后系统会执行replSetFreeze命令,禁止Secondary节点在接下来的60秒内被选举为新的Primary节点),最后重启Primary节点。对外服务的具体影响如下:

    • Hidden节点:对业务无感知。
    • Secondary节点:Secondary节点上的连接会全部断开,客户端需要重新建立连接,此时Primary节点可用,不影响读写。
    • Primary节点:Primary节点上的连接会全部断开,客户端需要重新建立连接,此时Secondary节点可用,实例可读,但不能写。如果Primary节点60秒内完成重启,实例恢复读写;如果Primary节点60秒后没有重启完成,Secondary节点会被主动选举为Primary节点,实例恢复读写。
  • 问题2:重启分片集群实例时,系统后台具体操作流程是什么样的?对外服务有什么影响?

    系统会先重启Shard节点,然后重启ConfigServer节点,最后重启Mongos节点。对外服务的具体影响如下:

    • Shard节点:多个Shard节点并行重启。重启过程中客户端连接不会断开,但是可能会出现不可写的情况,建议稍后重试写操作。
    • ConfigServer节点:对业务无感知。
    • Mongos节点:多个Mongos节点并行重启。重启过程中会断开当前节点上的所有连接,请确保业务具有重连机制。