Articles of mongodb

MongoDB – DB /收集碎片级别

我最近有一个performance问题与我的一个collections。 一时兴起(感谢这篇文章 ),我决定尝试压缩( 正式文档中写的)。 这工作出色。 但是,我现在想知道我应该多久做一次。 由于压缩不是一个完全的在线任务(我只能在被动节点上完成),所以我不能决定每天晚上都这么做,而忘记了这一点。 我找不到任何关于了解DB /集合何时具有高碎片率的文档。 你有什么经验来确定数据库的碎片级别(除了基准testing)? 注意 :我在文件内部的空间中讨论的是“内部”碎片,而不是“外部”碎片,就像文件在磁盘上传播一样。

非常奇怪的磁盘用于Mongodb副本

tl; dr:新的2.6版本比2.4版本的磁盘空间要多得多。 我们是MongoDB的GridFS的大量用户。 我们目前在2.4,并打算升级到2.6,只需添加一个新的副本成员,并逐渐推荐使用2.4节点。 我们有一个小学,一个中学和一个仲裁者。 以下是当前系统的一些数据: $ mongod –version db version v2.4.10 Sun Jul 27 13:56:27.250 git version: e3d78955d181e475345ebd60053a4738a4c5268a 以下是关于数据库的一些数据: > db.stats() { "db" : "SomeDatabase", "collections" : 4, "objects" : 2797931, "avgObjSize" : 284877.9334958582, "dataSize" : 797068801344, "storageSize" : 946689860768, "numExtents" : 469, "indexes" : 5, "indexSize" : 251248480, "fileSize" : 950804676608, "nsSizeMB" : […]

Mongodb:页面文件太小,在Win2012上v2.6.4

几个星期前我们有这个,mongo不会重启。 我们有30GB的内存。 分页文件本来是本4GB的。 当我们几个星期前第一次打这个时,我们把分页文件加到最大12GB / 25GB。 然后在几天前….服务器再次终止: 2014-10-01T00:24:05.664-0500 [conn3421] insert dotnetwrapper_mongodb.LogItem ninserted:1 keyUpdates:0 numYields:0 locks(micros) w:1814629 1818ms 2014-10-01T00:24:05.914-0500 [conn3419] VirtualProtect for c:/MongoDB/Data/dotnetwrapper_mongodb/dotnetwrapper_mongodb.309 chunk 46821 failed with errno:1455 The paging file is too small for this operation to complete. (chunk size is 67108864, address is 2db94000000) in mongo::makeChunkWritable, terminating 2014-10-01T00:24:05.914-0500 [conn3419] dotnetwrapper_mongodb.LogItem Fatal Assertion 16362 2014-10-01T00:24:08.082-0500 […]

后台在服务器上索引MongoDB

我有一个包含约2300万文件的服务器上的集合。 我需要索引这个集合,显然这将需要很长时间。 如果在服务器上通过ssh使用mongo shell的时候,使用background: true执行这个索引操作,那么如果我closures那个正在运行的shell查询的ssh会话,操作是否会继续运行? 编辑更多信息:例如,如果我有 > db.journeys.ensureIndex({startStationName: 1}, {background:true}) 这阻止了该会话中的进一步查询。 我知道,我可以开始一个新的会话,并访问数据库作为background:true但如果我closures此会话(我不能让我的笔记本电脑连接到互联网超过30个小时这个查询将采取),索引操作继续?

Fluentd不写apache访问日志到mongodb

我按照这个链接的指示写入Apache访问日志到mongo db- http://docs.fluentd.org/articles/apache-to-mongodb 。 但是没有任何东西正在写入Mongo DB。 我正在使用db["access"].findOne();检查db["access"].findOne(); 。 我的td-agent.conf文件的内容如下 – <source> type tail format apache2 path /var/log/httpd/access_log pos_file /var/log/td-agent/apache2.access_log.pos tag mongo.apache.access </source> <match mongo.*.*> # plugin type type mongo # mongodb db + collection database apache collection access # mongodb host + port host localhost port 27017 # interval flush_interval 10s # make sure to […]

Mongodb + Kerberos BadValue SASL机制不支持GSSAPI

我正尝试运行带有authentication机制GSS-API的mongodb实例。 这是命令: mongod –dbpath /home/ec2-user/db/node2/data –auth –setParameter authenticationMechanisms=GSSAPI 这是我得到的错误: F CONTROL Failed global initialization: BadValue SASL mechanism GSSAPI is not supported 看来我需要SASL用于GSS-API机制的库,就像我解决的其他问题一样: https://dba.stackexchange.com/questions/94889/mongodb-couldnt-find-mech-gssapi 但是现在我使用的是Linux Red Hat 7.5,之前我使用的是Ubuntu 14.04。 我安装的库试图解决这个错误是这些: cyrus-sasl-gssapi.i686 : GSSAPI authentication support for Cyrus SASL cyrus-sasl-gssapi.x86_64 : GSSAPI authentication support for Cyrus SASL perl-GSSAPI.x86_64 : Perl extension providing access to the GSSAPIv2 library […]

Mongodb:处理离线查询而不影响常规查询

我有一个MongoDB副本集有三个成员:主要,次要和隐藏的辅助,仅用于备份。 理想情况下,我想添加专门用于运行缓慢批量操作的附加实例。 这个想法是让这个实例运行map-reduce风格的操作,这可能需要很长时间才能完成,而不会减慢快速完成所需的常规查询。 我不知道可以实现这一点的Mongoconfiguration。 我很乐意听到如何处理繁重的离线请求,而不会影响短时间,接近实时的请求。

添加一个pipe理员用户到MongoDB

我正在使用MongoDB 3.0.3,并一直在创build用户的问题。 我使用db.addUser('admin','….')在admin数据库上创build了一个用户。 我给了它dbAdminAnyDatabase特权。 内容的输出是JSON中的用户帐户。 db.system.users.find报告(如图中所示)用户存在。 但是,当我去pipe理数据库上的db.auth。 我总是收到错误“auth failed code 18” 当我尝试从命令行login时,我得到相同的错误,但是这次在日志中放置了以下消息: 2015-05-25T00:11:47.781-0500 I ACCESS [conn15] SCRAM-SHA-1 authentication failed for admin on admin from client 127.0.0.1 ; UserNotFound Could not find user admin@admin 我究竟做错了什么? 我使用了Arch的基础安装。 它不会在configuration中使用auth = true启动。

在mongodb mon Virtualbox上使用bind_ip问题

我一直在努力与mongo绑定IP一段时间,我认为这是大声呼救的时候。 我正在使用hostonlynetworking192.168.56.0/24 。 我有4盒。 mongo的3个盒子192.168.56.111,192.168.56.112,192.168.56.113 。 和一个框为应用程序192.168.56.114 。 所以对于mongo绑定参数是: bind_ip =127.0.0.1,192.168.56.114,192.168.56.113,192.168.56.112,192.168.56.111,10.0.2.1 2015-08-22T12:35:44.547+0000 E NETWORK [initandlisten] listen(): bind() failed errno:99 Cannot assign requested address for socket: 192.168.56.114:27017 2015-08-22T12:35:44.553+0000 I JOURNAL [initandlisten] journal dir=/var/lib/mongodb/journal 2015-08-22T12:35:44.554+0000 I JOURNAL [initandlisten] recover : no journal files present, no recovery needed 2015-08-22T12:35:44.623+0000 I JOURNAL [durability] Durability thread started 2015-08-22T12:35:44.624+0000 I JOURNAL […]

两个数据中心之间的MongoDB自动故障切换

如果我只在两个数据中心部署一个MongoDb副本集,如果整个数据中心发生故障,是否可以自动故障转移到另一个数据中心? 考虑一个数据中心有一个主数据中心,一个仲裁数据中心和一个仲裁数据中心,第二个数据中心有两个二级成员。 本质上,一个5成员副本集。 如果数据中心2出现故障,数据中心1的副本集中仍然有3个成员。这很好。 相反,如果数据中心2保持运行状态,数据中心1停机,则5个成员副本组中只剩下2个成员。 这还不足以让二次投票成为主要的投票。 那是对的吗? 如果没有,我做错了什么。 如果这是不可能的,请让我知道,所以我可以探索其他选项。 添加第三个数据中心来容纳仲裁者不是一种select。