问题描述
当MongoDB实例的连接数被耗尽后,新发起的连接请求将无法被响应,以下为连接数据库失败的几种情况:
说明:不同的MongoDB实例规格支持的最大连接数有所不同,详情请参见实例规格表。
- 部署的应用程序突然无法连接数据库。
- 已正确设置了白名单,通过Mongo Shell连接数据库时,提示以下错误。
2019-07-10T10:30:43.597+0800 E QUERY [js] Error: network error while attempting to run command 'isMaster' on host 'dds-bpxxxxxxxx.mongodb.rds.aliyuncs.com:3717' : connect@src/mongo/shell/mongo.js:328:13 @(connect):1:6 exception: connect failed
- 已正确设置了白名单,通过数据管理DMS连接数据库时,提示以下错误。
DMS与MongoDB服务器无法建立连接,请检查连接地址的正确性、网络畅通情况、白名单设置后在进行重试。
问题原因
MongoDB实例的连接数已满。
解决方案
阿里云提醒您:
- 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
- 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
- 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。
检查MongoDB的连接数是否被耗尽
释放连接数
您可以通过重启实例来临时释放所有的连接。详细操作请参见重启实例。为避免再次出现该问题,重启实例后建议您参见以下方法进行调整:
说明:重启实例的操作会将实例的节点进行轮转重启,每个节点会有30秒左右的闪断,如果集合的数量较多(超过1万),闪断时间也会随之变长,重启前请做好业务安排并确保应用有重连机制。
- 合理地配置连接池,具体步骤请参见如何查询及限制MongoDB实例的连接数的如何限制终端的连接数章节。
- 分析连接的来源,具体步骤请参见如何查询及限制MongoDB实例的连接数的查询当前MongoDB实例连接来源章节。如果经过分析是业务将连接数耗尽,请升级实例的规格避免该问题,详情请参见变更配置方案概览。
适用于
- 云数据库MongoDB