MongoDB 云数据库常见问题诊断

本文涉及的产品
云原生多模数据库 Lindorm,多引擎 多规格 0-4节点
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 MongoDB,通用型 2核4GB
简介: MongoDB 云数据库常见问题诊断

重要的内容


MongoDB 的主备节点在运行过程中是不固定的,实例重启、升级、节点故障等都有可能导致主备切换,在生产环境应该使用副本集的方式来正确连接MongoDB 来实现高可用。


连接问题


用户可通过 DMS mongo shell 连接 MongoDB 云数据库,以下场景都基于用户使用 mongo shell 连接数据库。

Q:  连接实例提示网络超时?

image.pngimage.png

通过 telnet 来确认是否是网络不通导致的,例如

telnet dds-uf69ba5cf6e123442.mongodb.rds.aliyuncs.com 3717


网络不通可能的原因:


1. ECS MongoDB 节点不在同一个可用区

2. ECS MongoDB 节点不在同一个 vpc 环境


Q:  连接实例提示鉴权失败?

image.png

可能的原因

1. 密码错误,可在控制台重置 root 密码

2. 连接的用户跟数据库不匹配,比如 root 用户是 admin 数据库下的用户,则使用 root 连接时,必须指定鉴权数据库为 admin3. 客户端版本过低,mongo shell 版本必须是 3.0+,其他语言客户端的版本要求参考 Driver 兼容性文档


Q:  连接 Secondary 执行执行命令时,提示 slaveOk=false 错误?
image.png
默认情况下,MongoDB 的读写请求都必须到 Primary 节点,Secondary 默认是
不可读的,除非客户端显式的指定 Secondary 节点可读(通过设置
readPreference)。
mongoshell 连接时,可以执行 rs.slaveOk()来指定备可读


image.png


如果想 mongo shell 一直连接到 Priamry 节点,可通过如下方式连接

mongo --host  副本集名称/节点 1,节点 2 --authenticationDatabase admin -u
system -p xxx
例如
mongo --host
mg-100101/dds-uf69ba5cf6e123442.mongodb.rds.aliyuncs.com:3717,dds-uf6
9ba5cf6e123441.mongodb.rds.aliyuncs.com:3717   --authenticationDatabase
admin -u system -p xxx


注意:MongoDB的主备节点在运行过程中是不固定的,实例重启、升级、节点故障等都有可能导致主备切换,在生产环境应该使用副本集的方式来正确连接MongoDB 来实现高可用。


Q:  连接时提示

image.png


上述错误通常是实例的连接数已经达到上限,无法再建立更多的网络连接,可在控制台查看实例连接数的使用情况确认。用户使用实例时应该合理的规划并控制实例的连接数,避免因为连接数耗尽而无法连接实例,如果业务上的

确需要更多的网络连接,则需要升级实例的规格。连接数的管理请参考下面『连
接数问题』部分。


连接数问题    


 Q:  如何查看当前连接      


1. 登录阿里云控制台查看

2. 使用 mongo shell 连接实例,执行如下命令,其中 current 代表当前已建立连接数,available 代表当前可用连接数,internal*的连接用于内部管理,用户可忽略。

image.png

Q:  如何查看当前连接主要来自哪些 ECS 机器?

mongoshell DMS(如果连接数已满,则只能通过 DMS 来登录查看)连接实例,执行db.runCommand({currentOp: 1, $all: true}),就能输出所有跟该实例建立的所有连接情况,其中 client 字段包含了 ECS ip 地址信息。


image.png

image.png


有了上述结果,用户就可以根据来源 ip 做进一步的分析,得出各个 ECS 跟实例分别建立了多少连接等信息。


Q:  生产环境连接数快满了,如何限制每个 ECS 到实例的连接数量?


MongoDB 基本所有的 driver 都支持通过Connection String URI 来连接实例云数据库的连接 URI 已为用户在控制上生成好,加上密码信息就能直接使用。


如果采用 URI 来连接实例的,在 URI 末尾加上&maxPoolSize=xx 来限制到实例的连接数即可,比如你有 10 ECS 并发访问实例,实例的最大连接数为 1000那么每个 ECS 上的连接池的数量要控制在 100 以内。


不同语言的客户端可能封装了不通的连接方式,但也一定有方法指定连接池的数量限制,具体参考各语言客户端的 api 文档。


附在高问题

用率很高,想看看实例正在执行什么  

Q:CPU利用率很高,想看看实例正在执行什么操作?

image.png

造成实例负载高的典型 case


1. 并发请求的量太大,超出当前规格的服务能力

2. 查询集合时,没有合理的建索引,导致全表扫描或排序

3. 正在跑一些计算量很大的 mapreduce 或者 aggregation 任务


正在执行的操作都包含一个 opid 字段,用户可以根据 opid 字段直接 kill 掉对应的操作

mongo-test:PRIMARY> db.killOp(opid)


仍然无法解决问题


请查看 FAQ 文档,或提交工单。负载高问题


以上内容来自于《云数据库运维实战手册》,可点击https://developer.aliyun.com/topic/download?id=8198下载完整版

 

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
2月前
|
关系型数据库 MySQL Java
ChaosBlade常见问题之安装日志中一直报错某个数据库表不存在如何解决
ChaosBlade 是一个开源的混沌工程实验工具,旨在通过模拟各种常见的硬件、软件、网络、应用等故障,帮助开发者在测试环境中验证系统的容错和自动恢复能力。以下是关于ChaosBlade的一些常见问题合集:
38 0
|
2月前
|
Kubernetes 关系型数据库 MySQL
ChaosBlade常见问题之数据库进行故障注入报错ibdata1文件异常如何解决
ChaosBlade 是一个开源的混沌工程实验工具,旨在通过模拟各种常见的硬件、软件、网络、应用等故障,帮助开发者在测试环境中验证系统的容错和自动恢复能力。以下是关于ChaosBlade的一些常见问题合集:
27 1
|
2月前
|
Oracle 关系型数据库 数据库
OceanBase数据库常见问题之租户创建后想要改字符集如何解决
OceanBase 是一款由阿里巴巴集团研发的企业级分布式关系型数据库,它具有高可用、高性能、可水平扩展等特点。以下是OceanBase 数据库使用过程中可能遇到的一些常见问题及其解答的汇总,以帮助用户更好地理解和使用这款数据库产品。
|
1月前
|
存储 NoSQL MongoDB
MongoDB如何创建数据库
MongoDB如何创建数据库
|
2月前
|
SQL 关系型数据库 数据库
OceanBase数据库常见问题之录入租户管理员密码时,提示密码检验失败如何解决
OceanBase 是一款由阿里巴巴集团研发的企业级分布式关系型数据库,它具有高可用、高性能、可水平扩展等特点。以下是OceanBase 数据库使用过程中可能遇到的一些常见问题及其解答的汇总,以帮助用户更好地理解和使用这款数据库产品。
|
2月前
|
关系型数据库 MySQL 数据库
OceanBase数据库常见问题之脚本执行失败如何解决
OceanBase 是一款由阿里巴巴集团研发的企业级分布式关系型数据库,它具有高可用、高性能、可水平扩展等特点。以下是OceanBase 数据库使用过程中可能遇到的一些常见问题及其解答的汇总,以帮助用户更好地理解和使用这款数据库产品。
|
2月前
|
存储 SQL 关系型数据库
OceanBase数据库常见问题之部署时提示需要ocp但是我已经安过了如何解决
OceanBase 是一款由阿里巴巴集团研发的企业级分布式关系型数据库,它具有高可用、高性能、可水平扩展等特点。以下是OceanBase 数据库使用过程中可能遇到的一些常见问题及其解答的汇总,以帮助用户更好地理解和使用这款数据库产品。
|
2月前
|
存储 关系型数据库 数据处理
OceanBase数据库常见问题之start ob出错如何解决
OceanBase 是一款由阿里巴巴集团研发的企业级分布式关系型数据库,它具有高可用、高性能、可水平扩展等特点。以下是OceanBase 数据库使用过程中可能遇到的一些常见问题及其解答的汇总,以帮助用户更好地理解和使用这款数据库产品。
|
2月前
|
SQL 关系型数据库 数据库
OceanBase数据库常见问题之密码输入错误次数多被锁了如何解决
OceanBase 是一款由阿里巴巴集团研发的企业级分布式关系型数据库,它具有高可用、高性能、可水平扩展等特点。以下是OceanBase 数据库使用过程中可能遇到的一些常见问题及其解答的汇总,以帮助用户更好地理解和使用这款数据库产品。
|
4天前
|
存储 NoSQL 关系型数据库
MongoDB非关系型数据库实战
【5月更文挑战第6天】MongoDB,流行的NoSQL数据库,以其灵活的数据模型和高性能备受青睐。本文介绍了MongoDB的基础,包括文档型数据库特性、安装配置、数据操作。通过电商订单管理的实战案例,展示了MongoDB在处理复杂数据结构和大规模数据时的优势,适用于电商、游戏、视频直播等场景。MongoDB的索引、全文搜索和地理空间功能进一步增强了其实用性。注意性能优化和扩展性以确保系统稳定性和可靠性。

相关产品

  • 云数据库 MongoDB 版