Articles of mongodb

如何重置MongoDB副本集设置

我想重新开始复制​​副本的configuration,这有可能吗? 如何重置? 在群组中说删除数据库内容,但有什么变通吗?

MongoDB副本集是否需要至less2或3个成员?

这里的文档说三: http : //docs.mongodb.org/manual/tutorial/deploy-replica-set/ “副本集需要三个不同的系统…” 而这里的文档说了两个: http : //docs.mongodb.org/manual/core/replication/ “大多数副本集包含两个或更多的mongod实例…” 有人知道哪一个是正确的?

MongoDB和不适合内存的数据集,无论你多么努力

这是非常依赖系统的,但是几乎可以肯定的是,我们将经过一些任意的悬崖,进入真正的麻烦。 我很好奇,对于一个好的RAM与磁盘空间的比例,存在什么样的规则。 我们正在计划下一轮的系统,并且需要对内存,SSD以及每个新节点的数量做出select。 但现在有些performance细节! 在单个项目运行的正常工作stream程中,MongoDB的写入比例非常高(70-80%)。 一旦处理pipe道的第二阶段结束,读取的数据就非常高,因为它需要对在前半部分处理中标识的logging进行重复数据删除。 这是“让你的工作集在RAM中”的工作stream程,我们正在围绕这个假设进行devise。 整个数据集不断被来自最终用户派生源的随机查询命中; 虽然频率是不规则的,但大小通常很小(10个文件组)。 由于这是面向用户的,所以回复需要在3秒钟的“无聊 – 现在”阈值之下。 这种访问模式在caching中的可能性要小得多,所以很可能会产生磁盘命中。 二次处理工作stream程是先前的处理运行的高度读取,其可以是几天,几周甚至几个月,并且很less运行,但仍然需要快速。 以前的处理运行中的文件最多可以被访问100%。 我怀疑,没有任何数量的高速caching可以帮助解决这个问题。 完成的文件大小差别很大,但中值大小约为8K。 正常项目处理的高读取部分强烈build议使用副本来帮助分发读取stream量。 我已经在其他地方看到,对于慢速磁盘,1:10的RAM-GB到HD-GB是一个很好的经验法则。由于我们正在认真考虑使用速度更快的SSD,我想知道是否有类似的规则的快速磁盘的拇指。 我知道我们正在使用Mongo的方式是caching – 一切真的不会飞,所以我正在寻找方法来devise一个系统,以保持这种使用。 整个数据集可能在半年内成为结核病的大部分,并持续增长。

/etc/security/limits.conf软nproc限制似乎被忽略

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

什么硬件使得一个好的MongoDB服务器? 在哪里得到它?

假设您现在在dell.com上,并且您正在购买一台服务器来为您的小型创业公司运行MongoDB数据库。 你将不得不每分钟处理数以万计的写入和读取(但小的对象)。 你会去2处理器? 更多地投资于RAM? 我听说过(纠正我,如果我错了),MongoDB处理最多它可以在RAM上,然后刷新所有的磁盘,在这种情况下,我应该投资于一个具有大型二级caching,可能> 40GB的RAM和一个固态驱动器..对不对? (高达11,309美元,2个昂贵的处理器,96GB内存)服务器还是2个(约6,419美元,2个昂贵的处理器,12GB内存)服务器,我会更好吗? 戴尔是好还是你有更好的消化? (我在美国以外的葡萄牙)

如何安装旧版本的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(); 在我的开发服务器上工作得很好,但在本地机器上崩溃。 在dev返回运行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 exist我所有的渠道排列。 也运行mongod –version在本地返回数据库版本v2.6.0 ,在dev上返回数据库版本v2.4.3 […]

在文件系统上closures一次

我正在设置一个mongoDB副本集,我想要做的第一件事情之一就是在文件系统上closures一个时间。 经过这一番研究,我并不反对这样做,但是我不得不问,什么时候使用? 我已经search了互联网,发现“这个applciaiton或这个过程使用一段时间,你会愚蠢的,如果你把它closures”的方式很less的方式警告,但作为一个偏执的人性质,我不得不怀疑。 那么,什么使用一段时间,如果我把它关掉,什么可以打破?

我怎样才能在后台运行mongod(mac osx)?

我想在后台运行mongod作为一件永远存在的事情。 什么是最好的方法来做到这一点? 有点像我可以在启动时运行MySQL的方式,它总是在后台运行。 也许这只是一些bash脚本,但是如果有更好的方法,这将是很好的。 如果只是bash – 那会是什么样子? 谢谢。