Questions tagged «mongodb»

MongoDB的所有版本-可伸缩,高性能,开放源代码,面向文档的数据库。

2
CouchDB与MongoDB [关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 评估面向文档的存储,CouchDB与MongoDB的优缺点是什么?

5
高并发,高写入DB的基础结构
我的要求是: 3000个连接 70-85%写入与读取 目前,我们正在通过700个连接最大化高CPU超大型实例。所有8个内核均已最大化。我们认为这是并发连接数,因为内存很好。写入本身非常简单(验证很慢)。要扩展到3000,我们需要转到多台服务器,当前选项为: MySQL分片 MongoDB集群 卡桑德拉 Hadoop和MySQL(Hadoop缓存,一次转储到MySQL) MongoDB和MySQL(代替Hadoop,我们使用mongo进行缓存) 要处理此数量的连接,有几个问题: MySQL分片可以处理并发连接吗? 任何一个主服务器都可以处理这些并发连接,还是像Mongo这样的多头设备是更好的选择? 如果不能很好地描述我的问题,我深表歉意。请问问题。

2
Mongo以管理员身份为任何数据库创建用户都会引发错误
我正在尝试创建一个具有访问所有数据库的权限的简单用户,并且可以执行任何操作。当我尝试执行createUser命令时,出现以下错误: db.createUser({ user: "mongoadmin" , pwd: "mongoadmin", roles: ["userAdminAnyDatabase", "dbAdminAnyDatabase", "readWriteAnyDatabase"]}) 2015-08-20T17:09:42.300+0000 E QUERY Error: couldn't add user: No role named userAdminAnyDatabase@new_vehicles_catalog 仅当我启用身份验证配置并且需要它时,才会发生上述问题。 因此,如何为任何数据库创建具有管理员权限的用户。我想要它,因为我将mongo服务配置为使用身份验证连接。如果要执行数据转储,则必须使用此身份验证参数。 请任何帮助? 使用mongo版本3.0.5。 该服务位于Amazon Linux AMI 2015.03(HVM),SSD卷类型上-ami-1ecae776

1
数据库如何存储可变长度字段的索引键值(在磁盘上)?
语境 这个问题与SQL和NoSQL数据库系统中索引的低级实现细节有关。索引的实际结构(B +树,哈希,SSTable等)无关紧要,因为该问题专门涉及存储在任何这些实现​​的单个节点内的键。 背景 在SQL(如MySQL的)和NoSQL(CouchDB的,MongoDB的,等等)数据库,如果您在列或数据的JSON文档字段建立索引,你实际上是导致数据库做的就是创建本质上所有的排序列表这些值以及与该值有关的记录所在的主数据文件中的文件偏移量。 (为简单起见,我可能会手动放弃特定展示的其他深奥细节) 简单经典SQL示例 考虑一个标准的SQL表,该表具有一个简单的32位int主键,我们可以在该主键上创建索引,我们最终将获得一个排序后的整数键的索引在磁盘上的索引,并与数据文件中的64位偏移量相关联,其中记录的生命,例如: id | offset -------------- 1 | 1375 2 | 1413 3 | 1786 索引中键的磁盘上表示形式类似于以下内容: [4-bytes][8-bytes] --> 12 bytes for each indexed value 坚持使用文件系统和数据库系统优化磁盘I / O的标准经验法则,假设您将密钥存储在磁盘上的4KB块中,这意味着: 4096 bytes / 12 bytes per key = 341 keys per block 忽略索引的整体结构(B +树,哈希,排序列表等),我们一次将341个键的块读写到内存中,然后根据需要返回到磁盘。 查询范例 使用上一部分中的信息,假设有一个查询“ id …
16 mongodb  index  nosql  couchdb 

3
Mongo Shell中过去24小时的日期范围查询
我正在设置cron作业以从MongoDB数据库分析器收集结果。我想在24小时内收集结果。我计划使用javascript运行mongo命令。 问题是,在Mongo shell中,如何编写查询以查找24小时之前的日期范围?如: db.system.profile.find({ "timestamp" : { $lte : <current date & time>, $gt : <date & time 24 hrs ago> } })
15 mongodb  cron 

2
如何备份大型MongoDB数据库
在MongoDB中备份大数据集的推荐方法是什么?假设我们的数据大小约为10TB-您将如何备份呢? 我们正在考虑一个隐藏的,可能延迟的副本集节点。延迟可以保护我们免受整个数据库意外丢失的影响。这是一个可行的解决方案,您建议调查其他哪些选择? 谢谢!

2
Mongo DB副本设置为停留在RECOVERING状态
我们已经创建了一个副本集,现在的问题是副本集的2个成员[3个成员集]从48小时开始处于恢复模式。最初,恢复节点的大小在增加,现在甚至停止了。因此,在恢复节点时,它们会在90 GB数据和60+ GB本地数据后卡住。 如何摆脱这种模式?

2
Mongodb突然出现高连接数/队列,数据库停止响应
问题 我们在mongodb设置中遇到一个奇怪的问题。有时我们会遇到高连接和高队列的高峰,如果让队列和连接增加,mongodb进程将停止响应。我们需要使用带有htop的sigkill重新启动实例。 似乎存在系统限制/ mongodb配置阻止mongodb运行,​​因为硬件资源还可以。此问题的版本单独发生,然后在生产服务器上设置副本。前面的细节。 关于软件环境 这是一个独立的mongodb实例(不是分片或副本集),它在专用计算机上运行,​​并由其他计算机查询。我正在Debian 7.7下使用mongodb-linux-x86_64-2.6.12。 查询mongo的机器使用的是Django == 1.7.4,Mongoengine = 0.10.1和pymongo == 2.8,nginx 1.6.2和gunicorn 19.1.1。 在Django settings.py文件上,我使用以下几行连接到数据库: from mongoengine import connect connect( MONGO_DB, username = MONGO_USER, password = MONGO_PWD, host = MONGO_HOST, port = MONGO_PORT ) MMS统计 正如您从MMS服务的以下img中可以看到的那样,我们在连接和队列上达到峰值: 发生这种情况时,我们的mongodb进程将完全冻结。我们必须使用SIGKILL重新启动mongodb,这确实很糟糕。 在图像中有3个冻结事件。 如img所示,当发生这种情况时,我们在非映射虚拟内存上也会出现一个峰值。 另外,我们在第二和第三次冻结附近的Btree图表上发现了增加。 我们已经检查了日志,但是没有可疑的查询,操作人员也没有猛增,似乎没有比平常更多的查询了。 这是关于同一错误但在另一天/时间的另一个屏幕截图: 在所有情况下,数据库上的锁都没有显着增加,它有一个峰值,但没有达到4%: OpCounter降为零,似乎每个操作都进入mongodb queque,因此数据库创建新连接以尝试执行新请求,所有连接也都进入队列。 机器资源 关于硬件,该计算机是具有4个Intel …

4
有关操作/管理MongoDB的良好资源
学习如何操作和管理MongoDB的最佳资源是什么? 有大量的资源来开发它,这实际上会在您具有足够的开发能力并且确实需要过滤出这种噪音时造成问题。对于尚无力聘请DBA的开发人员,我们需要在保持我们的Mongo集群稳定,高性能等方面取得相当好的成绩。除了常见问题解答和快速入门指南之外,还有其他好的信息存储库吗?值得关注的好博客等?
13 mongodb 

4
为什么Mongo卡在STARTUP2中?
我有一个Mongo副本集,其中包含一些辅助副本。承载辅助实例的盒子崩溃并丢失了数据库。 我Mongo再次启动了辅助实例,现在它在STARTUP2中停留了12个小时以上。是否有意义 ?文档说Mongo应该在进入RECOVERING状态之前短时间处于STARTUP2 STARTUP2到底是什么意思?它是从主数据库复制数据库吗?我如何验证它(假设Mongo在Linux中运行)?
13 mongodb  recovery 

2
如何在mongodb连接uri上分别指定身份验证数据库和目标数据库?
我使用这个连接URI来连接到MongoDB的:mongodb://user:password@localhost/admin。它将admin用作机器人身份验证和目标数据库。如何使uri admin用作身份验证,但允许我连接到其他数据库?请以下面的命令为例: mongo --host localhost -u user -p password --authentication admin test 上面的命令将用作admin身份验证数据库,但连接到test数据库。如何在uri上做同样的事情?


2
MongoDB:在应用程序服务器上共同定位mongos进程
我想问一个有关本文档中描述的最佳实践的问题: http://info.mongodb.com/rs/mongodb/images/MongoDB-Performance-Best-Practices.pdf 使用多个查询路由器。使用跨多个服务器的多个mongos进程。常见的部署是将mongos进程共定位在应用程序服务器上,从而允许应用程序和mongos进程之间进行本地通信。mongos进程的适当数量将取决于应用程序和部署的性质。 有关我们的部署的背景知识。我们有很多应用服务器节点。它们每个都使用无状态RESTful WS运行一个基于JVM的进程。正如最佳实践所建议的那样,每个单个应用程序服务器节点都运行自己的mongos进程,这意味着JVM进程的数量始终等于进程的数量mongos。 所有mongos进程都连接到3台配置服务器和几个mongo分片(每个分片内都有副本集)。即使我们使用分片部署,也没有真正分片集合。实际上,我们有大量的数据库,这些数据库在创建时就分布在所有分片上(这是目前分片的主要用例)。 由于最佳实践还表明“适当的mongos进程数量将取决于应用程序和部署的性质”,我开始怀疑我们的用法mongos实际上是否合适,或者让我们拥有几个专用mongos节点是否更好?我们的应用服务器无需mongos本地运行即可连接到它们。 您对决定mongos与应用程序服务器实例数量或MongoDB集群大小相关的多少个实例合适的最佳方法有何看法? 最近,我们开始研究无状态Web服务的集群管理,我的意思是指诸如Docker,Apache Mesos和Kubernetes之类的工具。如果我们使用的是Docker,那么通常不建议在容器内运行多个进程。考虑到这一事实,要确保应用程序服务器容器和mongos容器始终位于同一物理节点上并具有相同数量的进程,将变得非常困难。这使我想知道这种最佳实践是否仍然适用于我刚刚描述的集群体系结构。如果没有,您能否建议mongos在这种体系结构中定位和部署流程的更好方法是什么?

3
ubuntu中用于mongodb的Upstart脚本
我是linux和mongodb的新手。我已经在ubuntu上安装了mongodb,但是我想在其他端口上再运行一个实例。从其他问题和论坛中了解到,必须有新贵脚本。 /programming/7300109/ubuntu-start-upstart-second-instance-of-mongodb 但是我无法在服务器上找到或找到upstart脚本,如果创建upstart脚本,则应将其定位为服务启动位置。 或者是否有其他适当且简便的方法在同一服务器上但不同端口上启动mongodb的另一个实例。

2
MongoDB副本集次要卡在“ ROLLBACK”状态
在我们的mongodb的最近一次自动更新过程中PRIMARY,当PRIMARY卸任时它永久进入ROLLBACK状态。 在该ROLLBACK状态下几个小时后,mongodb数据库目录.bson中的rollback目录中仍然没有回滚文件。那以及我们日志文件中的这一行:[rsSync] replSet syncThread: 13410 replSet too much data to roll back似乎表明该ROLLBACK过程失败了。 我想帮助您分析到底出了什么问题。 在我们的日志中似乎发生了两种不同的回滚。是这种情况还是花了3个小时? 如果第一次回滚成功(在19:00时)成功,为什么ou rollback目录中没有出现任何内容? 对所有这些警告的起因有任何猜测吗?可能与回滚失败有关吗? 我们是否由于第一次丢失了18秒的数据ROLLBACK? 是否有解决“卡在ROLLBACK状态”问题的通用解决方案?我们最终不得不使用整个数据库,并从主数据库重新同步。 相关的日志行是: # Primary coming back after restart... Tue May 15 19:01:01 [initandlisten] MongoDB starting : pid=3684 port=27017 dbpath=/var/lib/mongodb 64-bit host=magnesium Tue May 15 19:01:01 [initandlisten] db version v2.0.5, pdfile version 4.5 …
11 mongodb  rollback 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.