Articles of mongodb

我如何连接到代理后面的MongoDB副本集?

我有一个云服务上的MongoDB副本集。 出于安全原因,副本集可用于云的内部networking。 我遵循该云服务指南,并在代理服务器上为副本集的每个成员设置代理: 0.0.0.0:27017 -> member1-private-ip:27107 0.0.0.0:27018 -> member2-private-ip:27107 0.0.0.0:27019 -> member3-private-ip:27017 … 我能够以独立模式从公共networking连接到副本集的每个成员: mongoUri = new MongoClientURI("mongodb://usr:pwd@proxy-server-public-ip:27017/db") ; client = MongoClient(mongoUri); 但是当我尝试以副本集模式连接它: mongoUri = new MongoClientURI("mongodb://usr:pwd@proxy-server-public-ip:27017,proxy-server-public-ip:27018,proxy-server-public-ip:27019/db?replicaSet=replcaSetName"); client = MongoClient(mongoUri); 我会失败,连接错误,因为复制集告诉驱动程序使用每个成员的内部地址(公共networking不可访问)。 ps:我可以在代理服务器上以副本集模式连接到副本集。 如何连接到代理服务器后面的副本集? 更新:我在连接时使用代理服务器的公共地址。

为什么我只能在testing数据库中访问mongodb的GridFS?

我用mongodb的GridFS添加了一个文件: mongofiles put <the file> 现在我可以通过运行命令来看到它: db.fs.chunks.find() 只有当我使用testing数据库时,当我使用自定义数据库时,第二个命令什么也不返回。 mongodb是否使用test作为存储文件的默认数据库? 有没有办法指定这个?

如何限制一个进程可以在linux中使用的内存大小

我想弄清楚如何限制mongo守护进程的内存使用到4G。 我想使用limits.conf与memlock,但我不知道这是正确的方法来做到这一点。 从limits.conf手册页我已经了解,ulimits是指用户,而不是过程,而且“memlock”的定义是不清楚的: memlock maximum locked-in-memory address space (KB) 我怎样才能限制进程的内存使用?

MongoDB数据目录传输和升级

我只是将我的数据目录(Mongo 1.6.5)转移到一个新的服务器上,并安装了Mongo 2.0。 我设置数据目录path,并做了sudo server mongod restart 。 它失败了,日志文件输出说明了这一点 – ***** SERVER RESTARTED ***** Sun Oct 9 07:51:47 [initandlisten] MongoDB starting : pid=8224 port=27017 dbpath=/database/mongodb 64-bit host=domU-12-31-39-09-35-81 Sun Oct 9 07:51:47 [initandlisten] db version v2.0.0, pdfile version 4.5 Sun Oct 9 07:51:47 [initandlisten] git version: 695c67dff0ffc361b8568a13366f027caa406222 Sun Oct 9 07:51:47 [initandlisten] build info: Linux bs-linux64.10gen.cc […]

pnp4nagios不会为新服务/主机创buildgraphics

我有pnp4nagios工作的nagios基础设施。 最后几天,我添加了新的主机nosql,并在那里安装了mongodb的警报。 主机configuration: define host{ host_name nosql use linux-server,host-pnp address xxx.xxx.xx.xxx } 服务configuration: define service{ hostgroup_name nosql-servers use generic-service,pnp-service service_description MongoDB Connect check_command check_nrpe!check_mongo_connect } 他们似乎像其他人一样configuration。 但是,当我试图访问pnp4nagios中的图时,我得到: Please check the documentation for information about the following error. XML file "/usr/local/pnp4nagios/var/perfdata/nosql/MongoDB_Connect.xml" not found. Read FAQ online file [line]: application/models/data.php [312]: 我有点帮助。 我应该如何激活新图?

不确定如何在Windows Azure上设置两台虚拟机以匹配我所需的体系结构

我正在尝试在Windows Azure上安装一对Win2008服务器虚拟机(使用虚拟机预览function),我不知道如何正确地获得所需的“体系结构”设置。 这就是我想要达到的目标 – 我想要一台服务器只能作为运行MongoDB的数据库服务器(我知道他们说Linux比较好,但是由于各种原因我现在只限于Windows)。 我想要第二个服务器,将作为我的networking服务器。 这个Web应用程序将会运行node.js. 数据库服务器只能接受来自Web服务器的连接,并且只能在握手成功之后才能接受连接。 我可以通过在数据库服务器上运行第二个node.js服务器来解决握手问题,该服务器基本上充当数据库的Rest API,同时validation握手,而不是。 我有一个问题搞清楚的是如何使数据库服务器只接受来自我的Web服务器的连接? 如果我们假设为数据库服务器构build了第二个node.js应用程序,考虑到我可以构build节点应用程序只接受来自特定IP地址的连接,甚至需要这种networkingconfiguration吗? 或者在别的地方维持这个规则还是有道理的? 我对networking一无所知,所以这一切都在我的头上。 我将不胜感激任何帮助,指导,链接等任何人都必须分享:)

非映射虚拟内存和连接总数

我们有两个MongoDB数据节点(副本集) – 主要和次要。 我注意到non-mapped virtual memory相对较高,并且怀疑它们是否会影响我们的MongoDB性能(服务器通常每秒高达6-7K查询)。 在MMS中,有人指出:“对于非映射来说,使用大量内存的最常见情况是与数据库的连接非常多。 所以我们用db.serverStatus().mem来检查内存使用情况: { "bits" : 64, "resident" : 6846, "virtual" : 416797, "supported" : true, "mapped" : 205549, "mappedWithJournal" : 411098, "note" : "virtual minus mapped is large. could indicate a memory leak" } 注意:我们使用2.0.4,现在每个连接的默认堆栈大小应该是1MB。 目前的连接数是1.1K左右,但是未映射的虚拟内存(virtual-mappedWithJournal)大约是5699MB。 这个趋势是相当稳定的,所以我不能说这里有泄漏,但是记忆在哪里呢? 任何想法?

在启用了auth的mongodb服务器上使用mongodump

我正在尝试使用mongodump工具来每日备份我的mongodb服务器(启用auth)。 mongodump提供了两个参数来设置凭据: -u [ –username ] arg username -p [ –password ] arg password 不幸的是,他们没有提供任何参数来从标准input读取密码。 因此,每次运行这个命令时,服务器上的每个人都可以读取密码(例如,通过使用ps aux)。 我find的唯一解决方法是停止数据库,并使用–dbpath参数直接访问数据库文件。 有没有其他的解决scheme,让我备份mongodb数据库而不停止服务器,没有“发布”我的密码? 我正在用MongoDB 1.4.4-3使用Debian 6.0.5和amd64。

MongoDB副本集故障切换会增加1000倍的查询响应时间

我正在testing一个生产MongoDB副本集故障转移。 当我手动失败的情况下,我看到一个约。 我的PHP查询的响应时间减less了1000倍(一千次)。 我在最新的MongoDB(2.2.2)和最新的PHP驱动程序(1.3.3)。 我有一个3服务器副本集和一个PHPtesting,使两个相同的调用背靠背。 有没有人看过这个? 有人可以build议我的configuration更改来解决它吗? 这对我来说是一个停滞的问题。 下面的细节…注:我没有失败的主要我失败了一个次要的,但轶事testing表明,它没有任何区别。 非常感谢您提供的任何见解。 — ReplicaSet Config test:PRIMARY> rs.conf() { "_id" : "test", "version" : 10, "members" : [ { "_id" : 1, "host" : "10.0.1.1:27017", "priority" : 20 }, { "_id" : 2, "host" : "10.0.3.3:27017", "priority" : 10 }, { "_id" : 3, "host" : "10.0.2.2:27017" } […]

有3个生产节点,为什么Mongodb会抱怨投票节点?

我运行了1个shard,1副本集(2个辅助节点,1个主节点,1个延迟从节点)的mongodb分片群集。 日志中经常会出现以下消息: [rsMgr] replSet总票数是偶数 – 加上仲裁者或给一个成员一个额外的表决 但为什么? 延迟的从站是隐藏的,优先级设置为0.因此,应该有3个节点投票。 此外,当我为了维护目的而降级主服务器时,查询MongoDB的应用程序被轻度中断。 群集需要5到10秒才能find一个新的主节点。 谢谢, 格雷格。