Questions tagged «mongodb»

MongoDB是面向文档的数据库(也称为NoSQL数据库)。


1
如何安装旧版本的pecl软件包
我有这个代码 $passengerId = new \MongoId(oPassenger->getId()); return $this->createQueryBuilder('Device') ->update() ->multiple(true) ->field('activated')->set(false) ->field('passenger')->unsetField()->equals($passengerId) ->field('_id')->notEqual($deviceId) ->getQuery() ->execute(); 在我的开发服务器上工作正常,但在本地计算机上崩溃。 pecl list在开发者回报上运行 APC 3.1.13 beta amqp 1.2.0 stable intl 3.0.0 stable mongo 1.3.7 stable 以及本地回报: mongo 1.5.6 stable xdebug 2.2.5 stable 我机器上的崩溃消息是 "name":"MongoException","message":"Invalid object ID"},"code":500} 我曾尝试将本地版本的mongo降级,但由于pecl的文档欠佳,我无法弄清楚。例如我尝试了这个: sudo pecl upgrade -f -c channel://pecl.php.net/mongo-1.3.7 但是我会继续获取channel does not …
29 php  mac-osx  mongodb  pecl  pear 

5
暂时关闭文件系统
我正在设置一个mongoDB副本集,我想做的第一件事之一是在文件系统上一次关闭。经过研究后,我不反对这样做,但我不得不问,时间的使用是什么?我已经搜索了互连网,却很少发现“这种应用程序或此过程使用了一段时间,如果您将其关闭会很愚蠢”的警告方式,但是我天生就是一个偏执狂,我想知道。 那么,什么会使用atime?如果我将其关闭,有什么可能会中断?

2
/etc/security/limits.conf软nproc限制似乎被忽略
我的MongoDB数据库在负载下遇到了问题,垃圾邮件记录了以下错误: [initandlisten] pthread_create failed: errno:11 Resource temporarily unavailable [initandlisten] can't create new thread, closing connection 我得出的结论是,我需要提高“ ulimit -u”或“最大进程”设置(该设置为1024),并且使用量可能已经超过了启动Web前端时的使用量(不确定如何检查) 。 我编辑了/etc/security/limits.conf以添加最后两行(前两行已经存在): * soft nofile 350000 * hard nofile 350000 * soft nproc 30000 * hard nproc 30000 然后,我重新启动了系统(顺便说一句,我应该这样做,还是应该重新启动mongod服务?) 重新启动后,查看mongod进程的进程限制,似乎软限制已被忽略: $ cat /proc/2207/limits Limit Soft Limit Hard Limit Units Max cpu time …

2
如何通过ssh隧道连接到mongodb服务器
使用sequelpro可以很容易地连接到AWS上的远程mysql服务器,但是我在mongodb上做同样的事情很费劲。 我尝试通过命令行设置ssh隧道,如下所示: ssh -fN -l root -i path/to/id_rsa -L 9999:host.com:27017 host.com 我也尝试用IP地址替换主机 这个想法是将端口9999上的所有mongodb连接转发到端口27101上的主机上的连接。但是当我运行命令时: mongo --host localhost --port 9999 连接失败,我得到这个代替: MongoDB shell version: 2.6.0 connecting to: localhost:9999/test channel 2: open failed: connect failed: Connection timed out channel 3: open failed: connect failed: Connection timed out 2014-05-22T14:42:01.372+0300 DBClientCursor::init call() failed 2014-05-22T14:42:01.374+0300 Error: …

2
MongoDB副本集是否至少需要2个或3个成员?
这里的文档说了三个:http : //docs.mongodb.org/manual/tutorial/deploy-replica-set/ “副本集需要三个不同的系统……” 而这里的文档说了两个:http : //docs.mongodb.org/manual/core/replication/ “大多数副本集由两个或多个mongod实例组成...” 有人知道哪个正确吗?
16 mongodb 


1
是否可以从.ns和.0,.1,...恢复MongoDB数据库。…文件?
我在Ubuntu 12.10上安装了MongoDB 2.0.4。最近,我在从外部连接到数据库时遇到了一些问题,发现存在某种原因导致MongoDB无法正确启动。正如在多个来源(请参阅StackOverflow)上所建议的那样,我删除/var/lib/mongodb/mongodb.lock并运行mongod --repair。这并不能解决问题,MongoDB无法运行,并且会继续创建锁文件,之后便不会将其删除。通过查看日志,我意识到它无法访问名为的某个文件夹$tmpSomething,因此(由于名称建议使用一个临时文件夹),我将其删除,然后一切正常……除了我只有一个我以前的数据库中有一个数据库,而其他数据库仍然存在,因为我的/var/lib/mongodb/文件夹仍然充满.ns .0 .1 .n重的文件。有没有办法将它们还原到数据库中?(我曾尝试过mongorestore,但正如我所期望的那样,它不处理那些文件)。 谢谢

5
Mongodb-轮换日志的正确方法
Mongo 文档说我可以: 使用-SIGUSR1信号并重命名旧日志并进行当前切换 从OS使用logrotate 我希望操作系统具有logrotate功能,以压缩旧文件并删除最旧的文件,但是除了发送SIGUSR1之外,没有其他办法告诉mongod进程切换当前日志。 所以我写了 /var/log/mongodb/*.log { daily rotate 5 compress dateext missingok notifempty sharedscripts postrotate /usr/bin/killall -SIGUSR1 mongod /usr/bin/killall -SIGUSR1 mongos endscript } 到/etc/logrotate.d/mongo。 现在,可以从logrotate和空的日志文件中获取命名良好的日志文件,例如mongodb.log.2013-09-18T23-49-44SIGUSR1切换的痕迹。如何摆脱后者?

8
什么硬件可以使MongoDB Server更好?在哪里得到的?
假设您现在在dell.com上,并且要购买一台服务器来为小型启动运行MongoDB数据库。您将不得不每分钟处理数以万计的写入和读取(但对象很小)。您会购买2个处理器吗?在RAM上投资更多? 我听说过(如果我错了,请纠正我)MongoDB会尽其所能在RAM上进行处理,然后将所有内容刷新到磁盘上,在这种情况下,我应该投资具有较大二级缓存(可能大于40GB RAM)的CPU和固态硬盘..对吗? 使用高端(〜11,309美元,两个昂贵的处理器,96GB的RAM)服务器还是2个(〜6,419美元,两个昂贵的处理器,12GB的RAM)服务器,我会更好吗? 戴尔还好吗?还是您的建议更好?(我在美国境外,在葡萄牙)

3
无论您多么努力,MongoDB和不适合RAM的数据集
这是非常依赖系统的,但是几乎可以肯定的是,我们一定会越过一些任意悬崖进入“真正的麻烦”。我很好奇,存在什么样的经验法则才能获得良好的RAM与磁盘空间比率。我们正在计划下一轮系统,需要就RAM,SSD以及每个新节点获得多少进行一些选择。 但是现在了解一些性能细节! 在单个项目运行的正常工作流程中,MongoDB的写入百分比很高(70-80%)。一旦处理流水线的第二阶段命中,它的读取就非常高,因为它需要对在处理的前半部分中标识的记录进行重复数据删除。这是用于“将工作集保存在RAM中”的工作流,我们正在围绕该假设进行设计。 来自最终用户派生来源的随机查询不断打中整个数据集;尽管频率不规则,但是尺寸通常很小(每10个文档一组)。由于这是面向用户的,因此答复必须低于3秒的“立即无聊”阈值。这种访问模式不太可能位于缓存中,因此很可能会导致磁盘命中。 辅助处理工作流程是对以前处理运行的高度了解,它可能需要几天,几周甚至几个月的时间,并且运行频率不高,但仍然需要压缩。上一次处理中最多可以访问100%的文档。我怀疑没有多少缓存预热可以帮助解决这个问题。 成品文档的大小差异很大,但中位数约为8K。 正常项目处理中的高读取部分强烈建议使用副本服务器来帮助分配读取流量。我在其他地方读过,对于慢速磁盘,从1:10 RAM-GB到HD-GB是一个很好的经验法则,由于我们正在认真考虑使用速度更快的SSD,因此我想知道是否存在类似的规则快速磁盘的经验。 我知道我们在使用Mongo时不会真正使用所有缓存,这就是为什么我正在寻找一种方法来设计可以经受这种使用的系统。在整个数据集将可能是最结核病的半年内,并保持增长。

3
为什么删除110+ GB的收藏集后,我的/ var / lib / mongodb目录仍然具有相同的大小?
我在MongoDB和空间使用方面遇到了一些麻烦。特别是,我曾经在磁盘上收集了大约6亿条记录,总计110+ GB。最近,我决定删除它,因为数据已过时,为此,我通过rockmongo的Web界面删除了该集合。因此,rockmongo不再向我显示该集合,但是我的磁盘使用情况根本没有改变。 有没有我不知道的干净操作,为了将数据库与磁盘上的数据库文件同步,必须执行该操作? 我尝试执行“修复”,但是系统抱怨磁盘上没有足够的空间……这是因为MongoDB都使用了它。

3
node.js,mongodb,redis,ubuntu生产性能下降,RAM可用,CPU 100%
正如问题标题所暗示的那样,我很难确定可以对我的应用程序进行哪些改进(或在os,ubuntu中进行了调整)以达到可接受的性能。但首先,我将解释该体系结构: 前端服务器是一台8核机器,具有8 gigs RAM,运行Ubuntu 12.04。该应用程序完全用javascript编写,并在node.js v 0.8.22中运行(由于某些模块似乎抱怨较新版本的节点),我使用nginx 1.4代理来自端口80和443的HTTP流量到受管理的8个节点工作程序并开始使用节点集群api。我使用最新版本的socket.io 0.9.14来处理websocket连接,在该连接上,我仅启用了websockets和xhr-polling作为可用传输。在这台机器上,我还运行了Redis(2.2)的实例。 我将持久数据(例如用户和乐谱)存储在mongodb(3.6)上的第二台服务器上,该服务器具有4gigs RAM和2个内核。 该应用程序已投入生产数月之久(直到一个星期前才在一个盒子上运行),每天约有1.8万用户在使用。除以下一个主要问题外,它始终运行良好:性能下降。使用后,每个进程使用的cpu数量会增加,直到它使worker饱和(不再处理请求)为止。我已经临时解决了它每分钟检查一次每个工作人员使用的cpu的问题,并在达到98%时重新启动它。因此,这里的问题主要是cpu,而不是RAM。自从我更新到socket.io 0.9.14(较早的版本正在泄漏内存)以来,RAM不再是问题,因此我怀疑这是一个内存泄漏问题,尤其是因为现在它是CPU增长相当快的原因(我必须每天重新启动每个工人大约10-12次!)。老实说,正在使用的RAM也在增长,但是非常缓慢,每2-3天使用1个演出,奇怪的是,即使我完全重新启动整个应用程序,它也不会发布。仅当我重新启动服务器后才会释放!我真的不明白... 现在,我发现了nodefly很棒,因此我终于可以看到生产服务器上正在发生的事情,并且从几天开始就在收集数据。如果有人想查看图表,我可以给您访问权限,但是基本上,我可以看到我有80到200个并发连接!我期望node.js处理数千个请求,而不是数百个请求。同样,http流量的平均响应时间在500到1500毫秒之间浮动,我认为这确实很多。同样,在此时有1300位用户在线的时刻,这是“ ss -s”的输出: Total: 5013 (kernel 5533) TCP: 8047 (estab 4788, closed 3097, orphaned 139, synrecv 0, timewait 3097/0), ports 0 Transport Total IP IPv6 * 5533 - - RAW 0 0 0 UDP 0 0 0 …

2
一台服务器上有多个Mongos
我不是在谈论分片。我们有一个测试服务器(Linux),已经有一个mongo属于另一个项目/子团队。是否有可能运行多个孤立事件的mongodb一台机器上?我该怎么做?
11 mongodb 

3
这是MongoDB的有效备份策略吗?
我有一台专用服务器,其MongoDB数据库约为10GB。我需要进行每日备份,但是我不能在数据库中停机。是否可以在单个磁盘上使用一个副本集(在不同端口上运行2个mongod实例),然后简单地使辅助副本脱机并将数据文件备份到非现场存储(例如S3)(打开日记)?还是使用主/从比副本集更好? 这可行吗?如果可以,我可能会遇到哪些潜在问题?如果没有,我如何将其概念化?

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.