Articles of mongodb

MongoDB的辅助程序没有赶上

我有一个副本集,我试图升级到更多的内存和升级磁盘空间的主。 于是我在新的主服务器上search了几个磁盘,rsync从一个辅助服务器上的数据,并将其添加到副本集。 检查出rs.status()之后,我注意到所有的辅助节点都在主节点后面大约12小时。 所以当我试图强制新的服务器到主要地点,它将无法正常工作,因为它不是最新的。 这似乎是一个很大的问题,因为如果主要失败,我们至less要12个小时,差不多有48个小时。 oplogs全部重叠,oplogsize相当大。 我唯一能想到的就是我在主服务器上执行了大量的写/读操作,这可能会使服务器处于locking状态,而不能正确追赶。 有没有办法可能迫使中学赶上小学? 目前有5个服务器最后2个replace2个其他节点。 _id为6的节点将被replace为主节点。 距离主要运行时间最远的节点超过了48小时。 { "set" : "gryffindor", "date" : ISODate("2011-05-12T19:34:57Z"), "myState" : 2, "members" : [ { "_id" : 1, "name" : "10******:27018", "health" : 1, "state" : 2, "stateStr" : "SECONDARY", "uptime" : 20231, "optime" : { "t" : 1305057514000, "i" : 31 }, "optimeDate" : […]

移动块时,MongoDB Socketexception

我在我的mongodb数据库集群中有2个碎片,有1个mongos服务器。 我总共有8个服务器,一个副本集有5个,另外3个。我有一个集合在集群中分割,但最近当我尝试一个块移动时,我收到套接字例外。 所有服务器都在EC2上运行,大部分在相同的可用区域。 发送服务器和接收服务器位于不同的可用区域。 以下是日志的一些摘录: 发送服务器: 星期五5月20日07:53:28 [conn6158] moveChunk数据传输进度:{active:false,ns:“social_advantage_analytics.edges”,来自:“slytherin / draco:27018”,min:{_id:“100000007993210_116269473289”},max :{_id:“100000012316922_167580256615048”},状态:“失败”,errmsg:“套接字exception”,计数:{克隆:0,克隆的字节数:0,catchup:0,稳定:0},好:1.0} 0 5月20日星期五07:53:28 [conn6158]警告:moveChunk错误传输数据导致迁移中止:{active:false,ns:“social_advantage_analytics.edges”,来自:“slytherin / draco:27018”,min:{_id:“ 100000007993210_116269473289“},max:{_id:”100000012316922_167580256615048“},状态:”失败“,errmsg:”套接字例外“,计数:{克隆:0,克隆字节数:0,catchup:0,稳定:0},正确:1.0 } 接收服务器: 5月20日14:51:10 [migrateThread]即将login元数据事件:{_id:“george-2011-05-20T14:51:10-293”,server:“george”,clientAddr:“(NONE) time:new Date(1305903070637),what:“moveChunk.to”,ns:“social_advantage_analytics.edges”,details:{min:{_id:“100000007993210_116269473289”},max:{_id:“100000012316922_167580256615048”}注意:中止“}} 5月20日星期五14:51:10 [migrateThread]错误:迁移失败:套接字exception 碎片服务器: Fri May 20 07:53:05 [Balancer] balacer move failed:{cause:{active:false,ns:“social_advantage_analytics.edges”,from:“slytherin / draco:27018”,min:{_id:“100000007993210_116269473289”} ,max:{_id:“100000012316922_167580256615048”},状态:“失败”,errmsg:“套接字exception”,计数:{克隆:0,克隆的字节数:0,catchup:0,稳定的:0},ok:1.0},errmsg :“data transfer error”,ok:0.0} from:pansy to:percy chunk:{_ id :“social_advantage_analytics.edges- id ”100000007993210_116269473289“”,lastmod:Timestamp 90000 | 354,ns:“social_advantage_analytics.edges”,min: {_id:“100000007993210_116269473289”},max:{_id:“100000012316922_167580256615048”},分片:“pansy”}

什么是最好的OpenVPN多服务器configuration

我们有许多在Debian上运行MongoDB的数据库服务器,以及在Debian上运行的大量应用程序服务器。 数据库服务器持有复制数据库集群,所以他们需要相互交谈。 应用程序服务器需要与所有数据库服务器通信(出于容错的原因)。 服务器可能分布在多个托pipe中心,所以我们需要所有服务器之间的安全通道。 服务器的数量必然会增长,所以我们需要一个易于维护和扩展的VPN解决scheme。 这就是为什么我觉得我们用来testing的SSH可能不能胜任这个任务,而OpenVPN似乎是一个很好的select。 我已经排除了TAP,因为我知道这意味着所有的服务器都会有stream量 – 也许这是一个误解,TAP更像是一个交换机? 对于TUN设备,我想所有的数据库服务器都会在他们自己的独立子网中,他们也需要configuration一个客户端来连接他们的每一个对等端。 应用程序服务器只能以客户端configuration方式存在于共同的子网范围内。 这听起来像一个合理的设置? 奇怪的是,在networking上我没有发现任何有关OpenVPN的多服务器。 感谢所有的见解和想法!

MongoDB副本 – 仅在一个节点上设置复制滞后

在我们的MongoDB副本集中,我们遇到了一个奇怪的行为,设置了3个节点(所有Xeon四核CPU级别,一个16GB内存,另外两个节点24GB)RAMless一个节点, 0,其他两个优先级1.最近,我们每3到4小时经历约60秒的复制延迟,在2-3分钟后自我消失(Nagios Checks!) 我们在这些机器上几乎没有stream量,只有一些大小为0.3GB的数据库和一个是5GB的数据库。 我们有一个约65000个条目的集合,也是一个id索引。 奇怪的是,16gb-secondary没有滞后,只有两台大型机器的次要。 我只是把它改为主要的,看看老的主要(现在中学)是否也有这种行为。 有谁知道我们可以做什么或检查? 因为我们没有线索。 我检查了这些机器的负载和进程,networking连接和路由,磁盘状态 – 都很好。

如何计算我们的mongo服务器所需的EBS PIOPS?

我们希望在我们的mongo机器上使用预configuration的IOPS EBS卷,我对如何计算使用的预configurationIOPS数量感到困惑。 目前我们平均每个卷的IOPS(读取+写入)为25(我们使用了4个EBS卷),我们也看到我们的CPU在IO时间最高时处于“等待”状态。 我可以把问题分成两部分 – 我们看到在转移到预configuration的EBS IOPS之后,平均IOPS会有大幅度的增长,因为IO延迟会降低,如果我们采取一个很大的缓冲来避免超过IOPS计数? 你如何计算你的mongo设置的最佳IOPS数量? 谢谢! 编辑 – 附加从亚马逊的音量平均队列长度 (我不能粘贴图像,所以这里有一个链接) https://s3-eu-west-1.amazonaws.com/uploads-eu.hipchat.com/13432/91327/Mz2erjjMUcxMmDN/upload.png

mongo作为服务错误:无法确定服务器的状态

我正在尝试使用mongodb作为服务,并开始使用heroku服务,即dashboard.heroku.com/apps/scaleqamongo/resources。 我尝试了多个插件,他们称之为mongolab,mongohq。 我创build数据库,然后尝试将该服务地址添加到我的应用程序中 db: 'mongodb://username:[email protected]:10292,candidate.18.mongolayer.com:10292/app25406086', 但它给了我错误 Error: Cannot determine state of server Error: No replica set primary available for query with ReadPreference PRIMARY at ReplSet.checkoutReader (/prod/app/dashboard/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/repl_set/repl_set.js:585:14) at Cursor.nextObject (/prod/app/dashboard/node_modules/mongoose/node_modules/mongodb/lib/mongodb/cursor.js:723:48) at Cursor.nextObject (/prod/app/dashboard/node_modules/mongoose/node_modules/mongodb/lib/mongodb/scope.js:22:20) at Collection.findOne (/prod/app/dashboard/node_modules/mongoose/node_modules/mongodb/lib/mongodb/collection/query.js:157:10) at /prod/app/dashboard/node_modules/connect-mongo/lib/connect-mongo.js:214:18 at MongoStore._get_collection (/prod/app/dashboard/node_modules/connect-mongo/lib/connect-mongo.js:148:21) at MongoStore.get (/prod/app/dashboard/node_modules/connect-mongo/lib/connect-mongo.js:213:10) at Object.session [as handle] (/prod/app/dashboard/node_modules/express/node_modules/connect/lib/middleware/session.js:311:11) at next (/prod/app/dashboard/node_modules/express/node_modules/connect/lib/proto.js:193:15) at Object.methodOverride [as handle] […]

mongod:符号查找错误:mongod:undefined symbol:_ZN5boost6detail13once_epoch_cvE

Iam遇到我的mongodb安装问题:当我运行sudo mongod时,出现mongod: symbol lookup error: mongod: undefined symbol: _ZN5boost6detail13once_epoch_cvE uname -a Linux xyz 3.2.0-4-686-pae #1 SMP Debian 3.2.65-1+deb7u2 i686 GNU/Linux which mongod /usr/bin/mongod ldd /usr/bin/mongod linux-gate.so.1 => (0xb76e7000) libpcrecpp.so.0 => /usr/lib/i386-linux-gnu/libpcrecpp.so.0 (0xb76b9000) libpcre.so.3 => /lib/i386-linux-gnu/libpcre.so.3 (0xb767b000) libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb758e000) libboost_system.so.1.49.0 => /usr/lib/libboost_system.so.1.49.0 (0xb758a000) libboost_thread.so.1.49.0 => /usr/lib/libboost_thread.so.1.49.0 (0xb7565000) libboost_filesystem.so.1.49.0 => /usr/lib/libboost_filesystem.so.1.49.0 (0xb7546000) libboost_program_options.so.1.49.0 => /usr/lib/libboost_program_options.so.1.49.0 […]

MongoDB Oplog安全

我们正在使用MongoDB副本集来共享Web场中的会话和其他(可能敏感的)数据。 我们存储的所有数据都使用TTL索引在相对较短的时间(比如一小时)之后过期文档,部分是出于安全原因。 但是,我发现即使从MongoDB集合中删除数据,用于复制的oplog仍将包含所有创build(然后删除)的文档。 所有过期的数据都可以很容易地从oplog中读取。 根据分配给oplog的大小,其中的数据可能会很老。 我的问题是,这里最好的做法是什么? 有什么我们可以做的,除了严格的减lessoplog的大小,防止旧数据被访问?

MongoDB SSLencryption和Spring的驱动程序

有关副本集和驱动程序(Java客户端)之间传输的MongoDB和SSLencryption信息非常有限。 任何人有任何经验设置? 希望在不需要使用stunnel或其他SSL代理方法的情况下对节点之间的stream量(查询和副本信息)进行encryption。

mongoid连接问题

我一直在尝试在Ubuntu上使用Mongoid和Rails。 Mongodb正在为我的轨道应用程序3.0至3.2罚款。 今天突然,我得到一个错误: /home/pravinmishra/.rvm/gems/ruby-1.9.2-p318/gems/mongo-1.5.2/lib/mongo/connection.rb:413:in`connect':无法连接到本地主机上的主节点:27017(Mongo :: ConnectionFailure) 很多时候我遇到这个问题,下面的命令为我工作: sudo rm /var/lib/mongodb/mongod.lock sudo -u mongodb mongod -f /etc/mongodb.conf –repair sudo start mongodb sudo status mongodb 当我使用mongo从Ubuntuterminal连接时,我得到这个错误: MongoDB shell版本:2.0.1连接到:testing星期一7月9日22:47:06错误:无法连接到服务器127.0.0.1 shell / mongo.js:84exception:连接失败 任何build议,将不胜感激。