云数据库 MongoDB 版支持重启实例、重启组件以及重启节点。当数据库出现连接数满或性能问题时,您可以尝试手动重启实例、组件或节点解决问题。
使用限制
重启组件仅支持分片集群实例。
重启节点仅支持云盘版实例。
注意事项
重启实例期间会启停进程,系统会断开当前所有连接,请确保业务具有重连机制。
Mongod和Mongos进程启动时间通常都在30秒以内。但是当集合数量较多(超过1万),Mongod的启动时间可能达到分钟级别。进程启动完成之前,将无法连接对应节点,为了避免重启时间过长造成业务受损,建议将集合数量控制在1万以内。更多内容介绍,请参见MongoDB官网文档。
副本集实例重启后,可能会出现节点角色变化的情况,建议您在生产环境中使用ConnectionStringURI高可用连接地址。更多介绍,请参见副本集实例连接说明。
分片集群实例重启时,在Mongos进程重启时连接会断开,建议您在生产环境上使用ConnectionStringURI高可用连接地址,且ConnectionStringURI高可用连接地址中添加至少两个Mongos的连接地址。更多介绍,请参见分片集群实例连接说明。
重启副本集实例中的单个节点后,可能会出现节点角色变化的情况,建议您在生产环境中使用ConnectionStringURI高可用连接地址。更多介绍,请参见副本集实例连接说明。
重启分片集群实例Shard组件中的单个节点时,客户端与数据库的连接不会断开,但是可能会出现不可写的情况,建议稍后重试写操作。
操作步骤
重启实例
登录MongoDB管理控制台。
根据实例类型,在左侧导航栏,单击副本集实例列表或分片集群实例列表。
在页面左上角,选择实例所在的资源组和地域。
单击目标实例所在行操作列的更多,并选择重启。
在弹出的重启实例对话框中,单击确定。
执行重启操作时,实例状态为重启中,当实例状态变更为运行中时,说明实例重启成功。
重启组件
仅分片集群实例支持重启组件。
访问MongoDB分片集群实例列表,在上方选择资源组和地域,然后单击目标实例ID。
在Mongos列表或Shard列表区域,找到需要重启的组件,单击目标组件所在行操作列的,并选择重启。
在弹出的重启节点对话框中,单击确定。
执行重启操作时,实例状态为重启中,当实例状态变更为运行中时,说明组件重启成功。
重启节点
访问MongoDB副本集实例列表或MongoDB分片集群实例列表,在上方选择资源组和地域,然后单击目标实例ID。
在目标实例页面的左侧导航栏,单击服务可用性。
找到需要重启的节点,单击操作列的重启节点。
在重启节点对话框中,单击确定。
执行重启操作时,实例状态为节点重启中,当实例状态变更为运行中时,说明单个节点重启成功。
常见问题
问题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节点并行重启。重启过程中会断开当前节点上的所有连接,请确保业务具有重连机制。