重启实例、组件或节点

云数据库 MongoDB 版支持重启实例、重启组件以及重启节点。当数据库出现连接数满或性能问题时,您可以尝试手动重启实例、组件或节点解决问题。

使用限制

  • 重启组件仅支持分片集群实例。

  • 重启节点仅支持云盘版实例。

注意事项

  • 重启实例期间会启停进程,系统会断开当前所有连接,请确保业务具有重连机制。

  • MongodMongos进程启动时间通常都在30秒以内。但是当集合数量较多(超过1万),Mongod的启动时间可能达到分钟级别。进程启动完成之前,将无法连接对应节点,为了避免重启时间过长造成业务受损,建议将集合数量控制在1万以内。更多内容介绍,请参见MongoDB官网文档

  • 副本集实例重启后,可能会出现节点角色变化的情况,建议您在生产环境中使用ConnectionStringURI高可用连接地址。更多介绍,请参见副本集实例连接说明

  • 分片集群实例重启时,在Mongos进程重启时连接会断开,建议您在生产环境上使用ConnectionStringURI高可用连接地址,且ConnectionStringURI高可用连接地址中添加至少两个Mongos的连接地址。更多介绍,请参见分片集群实例连接说明

  • 重启副本集实例中的单个节点后,可能会出现节点角色变化的情况,建议您在生产环境中使用ConnectionStringURI高可用连接地址。更多介绍,请参见副本集实例连接说明

  • 重启分片集群实例Shard组件中的单个节点时,客户端与数据库的连接不会断开,但是可能会出现不可写的情况,建议稍后重试写操作。

操作步骤

重启实例

  1. 登录MongoDB管理控制台

  2. 根据实例类型,在左侧导航栏,单击副本集实例列表分片集群实例列表

  3. 在页面左上角,选择实例所在的资源组和地域。

  4. 单击目标实例所在行操作列的更多,并选择重启

  5. 在弹出的重启实例对话框中,单击确定

    执行重启操作时,实例状态为重启中,当实例状态变更为运行中时,说明实例重启成功。

重启组件

说明

仅分片集群实例支持重启组件。

  1. 访问MongoDB分片集群实例列表,在上方选择资源组和地域,然后单击目标实例ID。

  2. Mongos列表Shard列表区域,找到需要重启的组件,单击目标组件所在行操作列的更多,并选择重启

  3. 在弹出的重启节点对话框中,单击确定

    执行重启操作时,实例状态为重启中,当实例状态变更为运行中时,说明组件重启成功。

重启节点

  1. 访问MongoDB副本集实例列表MongoDB分片集群实例列表,在上方选择资源组和地域,然后单击目标实例ID。

  2. 在目标实例页面的左侧导航栏,单击服务可用性

  3. 找到需要重启的节点,单击操作列的重启节点

  4. 重启节点对话框中,单击确定

    执行重启操作时,实例状态为节点重启中,当实例状态变更为运行中时,说明单个节点重启成功。

常见问题

  • 问题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节点并行重启。重启过程中会断开当前节点上的所有连接,请确保业务具有重连机制。