Articles of mongodb

MongoDB不能正确复制

我使用mongoDB为我的应用程序托pipe在3个亚马逊实例。 我有一个具有最高优先级的主节点(100)和2个优先级为99和98的辅助节点。几天前,我在访问主节点时开始获取MongoCursorExceptions。 我认为这与我的主服务器资源耗尽和响应速度慢有关,所以我决定将其中一个辅助节点切换到主节点。 我把优先级从100,99和98改为1,100,98,但是这并没有将辅助服务器切换到主服务器。 在检查我的副本集的状态时,我发现3个节点没有正确同步,因为optime超过了17个小时。 真正令人担忧的是两个辅助节点的运行时间是不变的,而对于主节点来说,它的持续增加。 我还通过使用slaveOk查询来validation我的辅助节点没有最新的数据。 以下是我在主节点上的状态: PRIMARY> rs.status() { "set" : "rs_a", "date" : ISODate("2012-02-28T09:34:50Z"), "myState" : 1, "members" : [ { "_id" : 0, "name" : "server1.com:27018", "health" : 1, "state" : 1, "stateStr" : "PRIMARY", "optime" : { "t" : 1330421648000, "i" : 2 }, "optimeDate" : ISODate("2012-02-28T09:34:08Z"), "self" : true […]

非常慢的MongoDB副本集

我已经在EC2中设置了两个具有RAID10的Mongo实例。 我使用这两个服务器设置了副本集,发现这个副本在networking上非常慢。 如果我在本地login并在mongo控制台中发出查询,一切正常。 我testing磁盘速度没有问题在这里: sudo dd if=/dev/zero of=/data/output2.img bs=8k count=100k 102400+0 records in 102400+0 records out 838860800 bytes (839 MB) copied, 1.87101 s, 448 MB/s 而没有复制的类似设置工作很快。 我怎样才能find这个问题?

MongoDB REST接口不在更新后监听

我用Ubuntu软件包(mongodb-server,mongodb-client和dev)取代了mongodb-10gen安装。 apt-get install mongodb 此后,我现在无法连接到之前工作的REST界面。 做一个wget到http://127.0.0.1:27018 ,我收到以下回应: Connecting to 127.0.0.1:27018… failed: Connection refused. 我以前的/etc/mongodb.conf文件有以下内容: #enable REST rest = true 将其添加到打包的conf文件不能解决问题,即使重新启动也不能解决问题。 我也尝试改变以下没有效果: # Disable the HTTP interface (Defaults to localhost:27018). # nohttpinterface = true 至 # Disable the HTTP interface (Defaults to localhost:27018). nohttpinterface = false 我search了几天,在Mongo网站上似乎没有任何类似的exception。 如果您在Ubuntu Oneiric上遇到类似问题,请添加您的评论,即使您没有find解决此问题的解决scheme。

gentoo在哪里存储mongodb.conf? 要更改dbpath位置

这可能看起来像一个天真的问题,但我不能为我的生活找出gentoo安装后从mongodb.conf中的位置。 文档说在/ etc /下查找,但不在那里。 我所要做的就是修改dbpath参数,让它保存在/ data / db下,但是目前使用/ var / lib / mongodb(这很奇怪,因为它应该默认为/ data / db) 我所看到的最接近的是/etc/init.d/mongodb,它具有以下configuration: start-stop-daemon –background –start –make-pidfile \ –pidfile ${MONGODB_RUN:-/var/run/mongodb}/${SVCNAME}.pid \ ${USEROPT} ${MONGODB_USER:-mongodb} \ –exec ${MONGODB_EXEC:-/usr/bin/mongod} \ — \ –port ${MONGODB_PORT:-27017} \ –dbpath ${MONGODB_DATA:-/data/db} \ #–dbpath ${MONGODB_DATA:-/var/lib/mongodb} \ –unixSocketPrefix ${MONGODB_RUN:-/var/run/mongodb} \ –logappend –logpath /var/log/mongodb/${SVCNAME}.log \ ${MONGODB_OPTIONS} eend $? } 正如你所看到的,我改变了dbpath应该指向的地方。 但是,运行ps […]

Mongo不是账户特定的

我有mongo在我的系统上运行,但我可以从其他人的帐户访问我所有的数据库/集合。 我可以保护特定的藏品吗? 我如何阻止访问我的collections,但不能切断他们的蒙戈壳?

MongoDB:随机与顺序读取性能

我有一个具有3个字段集合的单实例mongodb:_id,block_id,payload。 有效负载总是4096字节的二进制文件 _id是一个不断递增的唯一整数 这个集合有一个二级索引: { "v" : 1, "key" : { "block_id" : 1, "_id" : -1 }, "ns" : "testdb.testdev", "name" : "_block_id_id" } 我正在做许多查询,如: query: { query: { block_id: 868413 }, orderby: { _id: -1 } } ntoreturn:1 nscanned:1 nreturned:1 reslen:4166 163ms 在这期间没有其他查询。 当我通过block_id顺序读取时,比用随机block_id查询时快了10倍。 我的CPU使用率低,存储利用率低。 该集合是内存大小的2-3倍。 这里可能是什么瓶颈?

enkive邮件归档ldap设置

我正在尝试使用交换进行邮件归档。 我已经遵循了安装所有先决条件。 我用默认运行enkive,我得到日志文件中的错误 Aug 13, 2012 2:50:47 PM com.mongodb.DBTCPConnector fetchMaxBsonObjectSize WARNING: Exception determining maxBSON size using0 java.io.IOException: couldn't connect to [titan/172.16.0.3:27017] bc:java.net.ConnectException: Connection refused at com.mongodb.DBPort._open(DBPort.java:228) at com.mongodb.DBPort.go(DBPort.java:112) at com.mongodb.DBPort.go(DBPort.java:93) at com.mongodb.DBPort.findOne(DBPort.java:146) at com.mongodb.DBPort.runCommand(DBPort.java:157) at com.mongodb.DBTCPConnector.fetchMaxBsonObjectSize(DBTCPConnector.java:457) at com.mongodb.DBTCPConnector.checkMaster(DBTCPConnector.java:444) at com.mongodb.DBTCPConnector.say(DBTCPConnector.java:146) at com.mongodb.DBTCPConnector.say(DBTCPConnector.java:138) at com.mongodb.DBApiLayer$MyCollection.remove(DBApiLayer.java:291) at com.mongodb.DBCollection.remove(DBCollection.java:239) at com.mongodb.DBCollection.remove(DBCollection.java:262) at com.linuxbox.util.lockservice.mongodb.MongoLockService.startup(MongoLockService.java:105) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) […]

实时Mongo数据库的低优先级批处理

我们希望在我们的Mongo数据库上运行MapReduce,主要是为了能够提取指标。 但是,由于这些MR陷入了Mongo服务器(尤其是100%磁盘IO),导致了一些不良停机。 我们认为这是由于缺less索引。 是否有可能执行像这些低优先级的批处理过程,使它不会使数据库无法访问我们的实时应用程序?

亚马逊EC2高内存超大实例

我是Mongodb和EC2的新手。 如果我使用下面的单个MongoDb服务器: 高内存超大型实例17.1 GiB内存,6.5 ECU(2个虚拟核心,每个核心为3.25个EC2计算单元),420 GB本地实例存储,64位平台 作为一个外行,如果我们量化I / O,数据以MB /秒为单位。 mongodb服务器可以轻松处理多lessI / O事务,而不会被烧毁。 考虑使用AWS市场上提供的Ubuntu和MongoDb版本的EC2服务器的默认设置。

MongoDB ReplicaSet慢读性能

我成功地基本configuration我的副本集,但我注意到读取速度慢。 我有两个mongo服务器和一个仲裁器在我的副本集。 所有正在运行的Centos 6.3最小安装(只是数据库)。 我在Windows Server 2012上也有单一的mongo实例。 在构build我的副本集之前,我的Web服务器与Mongo(即Windows实例)在同一个操作系统上。 performance很好,结果就像 C#.NET 4.5(同一虚拟机上的IIS和Mongo)读取2000行:在AvgObj 2600字节〜250ms 现在与我的副本集我有非常缓慢的阅读性能。 当我的Web服务器访问副本集,我很喜欢的结果 C#.NET 4.5(在Centos Replica上分开,IIS和Mongo)读取2000行:在AvgObj上为〜2500ms 2600字节 我试图从我的单个Mongo即时从远程IIS读取,结果就像 C#.NET 4.5(在Windows上分开,IIS和单个Mongo)读取2000行:在AvgObj 2600字节〜600ms 所有服务器都运行在具有Hyper-V核心服务器的单个物理机器上。 我使用最新的C#MongoDB驱动程序1.7版本。 从我testing的所有Mongo服务器上,我的查询在10ms内执行。 任何人都可以给我build议,为什么我的分离的Centos服务器上设置的副本有缓慢的读取性能?