Articles of mongodb

Mongodb:webscale是什么意思?

Mongodb被称为webscale。 我试着在网上search一下webscale究竟是什么意思,但是没有运气。 那么,webscale究竟意味着什么呢? 和其他任何规模有什么不同呢? 为什么mongodb被称为webscale而其他数据库不是? 在此先感谢您的帮助。

新贵的多个服务实例无法正常工作

我开始在Lucid上玩MongoDB。 现在我想在同一个盒子上运行一个DB和Config服务器。 他们都使用相同的二进制启动,但具有不同的configuration文件,并在不同的端口上运行。 log和lib的所有目录都被分割,所以一个去mongodb,另一个去mongoconf。 每个过程都可以在没有任何问题的情况下自行启动。 start mongodb stop mongodb start mongoconf stop mongoconf 但是,如果我尝试启动两个,第二个就会启动并退出。 使用'initctl日志优先级debugging'我在日志中得到以下内容。 Jan 6 12:44:12 mongo4 init: event_finished: Finished started event Jan 6 12:44:12 mongo4 init: job_process_handler: Ignored event 1 (1) for process 5690 Jan 6 12:44:12 mongo4 init: mongoconf (mongoconf) main process (5690) terminated with status 1 Jan 6 12:44:12 mongo4 […]

当我们绑定到物理机器时,什么时候以及如何分割MongoDB?

我们维护一个从MongoDB提供数据的search服务。 我们的Mongo生产实例被安排在四个物理服务器上的一个4节点副本集中。 数据库由几个小集合和一个大集合组成。 大集合有以下特点: 文件数量:3500万 平均文档大小:〜4.2 kB collections大小:151 GB storageSize:157 GB 在接下来的一年里,我们预计这个collections中的文献数量将增加一倍,达到7000万,collections量也会翻一番。 我意识到Mongo Reference Limits文档中的“Sharding Existing Collection Data Size”部分,它指定“ 对于保存文档的现有集合,MongoDB支持在任何包含小于256千兆字节数据的集合上启用分片,MongoDB可能是根据文档大小的分布,能够分割多达400千兆字节的集合 “。 因此,在达到256千兆字节的数据之前,我们希望能够碎片化。 我们在资源方面有一些限制,我们还没有(虚拟化)的位置。 但是,我们可以购买两台新服务器,总共可以生产六台生产机器。 我的问题是,是否有可能把Mongo分成两个分片,每个分片是一个只有六个物理服务器的三服务器复制集? 我意识到,除了副本集,我们需要三个config服务器和一个mongos服务器? 我们是否应该分解? 目前的内存使用量和连接数目目前都在可接受的水平之内。 有没有其他的策略可以使我们的数据库增长,而不涉及分片?

将MongoDB 2.x副本集升级到3.x

我有一个由两个数据库节点和一个仲裁器组成的MongoDB副本集。 我想通过启动新的更大的实例(Google计算引擎)来升级副本集,安装MongoDB 3,然后将其添加到现有的2.6副本集,然后一旦这两个新的3.0成员在线,我想推广一个新数据库的主要,然后从副本集中删除2.6成员。 读取MongoDB文档,MongoDB 3的二进制文件是“drop-in replacement”,那么这意味着我应该可以使用这个升级path吗? 我还允许新成员build立自己的数据库,从现有的成员播种,以利用新的wiredTiger存储引擎。

在MongoDB 3中启用WiredTiger引擎

我有问题,通过在mongod.conf中启用WiredTiger引擎我使用的是Centos 7,这是我的configuration #在/ etc / mongod.conf 存储: wiredTiger: engineConfig: cacheSizeGB:2 collectionConfig: blockCompressor:爽快 dbPath:“/ var / lib / mongo” systemLog: 目标:文件 path:“/var/log/mongodb/mongod.log” logAppend:true #timeStampFormat:iso8601-utc stream程pipe理: fork:true pidFilePath:“/var/run/mongodb/mongod.pid” 净: bindIp:10.0.1.136,127.0.0.1 港口:27017 wireObjectCheck:true unixDomainSocket: 启用:是 安全: keyFile:“/etc/mongo.rs1.key” 授权:“启用” 复制: oplogSizeMB:2048 replSetName:rs1 Mongo启动,但enginge是mmapv1 :(这是在mongo日志中的输出 当前存储引擎为mmapv1时检测到非活动存储引擎wiredTiger的configuration 我只能通过manualy调用命令来启用wiredtiger mongod –storageEngine wiredTiger 这是我的configuration文件错了吗? 我在Centos 6上遇到同样的问题。 编辑:在Centos 7我可以启用WiredTiger制作systemd初始化脚本(Mongo3默认使用/etc/init.d脚本来)。 /lib/systemd/system/mongod.service [单元] 说明=高性能,无模式的面向文档的数据库 之后= syslog.target […]

MongoDB副本集:RAID 60是否值得用于海量arrays?

我们计划将HP Smart Array P440ar/2G FIO Controller HPE DL380 Gen9 8SFF CTO服务器与HP Smart Array P440ar/2G FIO Controller以build立一个存储海量数据的MongoDB群集。 (假设增长不停) 集群最初将有3个服务器,并且在需要分片时将添加更多的服务器。 每个服务器将有16 * 10K SAS驱动器: HPE 1.8TB SAS 10K SFF SC 512e HDD MongoDB文档build议有由RAID-10支持的存储。 考虑到RAID-10的可用尺寸只有50%,它确实感觉像浪费了原始空间。 RAID-50将提供更多的存储空间,但是每个子arrays只能有一个驱动器出现故障,如果重新构build,性能下降可能会很糟糕。 RAID-60将使用额外的磁盘作为每个子arrays的奇偶校验,将具有较less的性能,较less的空间,但更具弹性。 我select16 * 1.8TB磁盘,使用这个计算器: RAID-10:13.1 TB RAID-50:22.9 TB RAID-60:19.6 TB 我从来没有处理过这么大的数组,考虑到这个数量巨大的挑战: RAID-60会花费额外的磁盘,但在降级/重build期间性能会降低很多? 任何其他利弊我应该考虑?

什么是最安全的方式来改变MongoDB服务器结构?

我目前有一个MongoDB副本集configuration如下: { "_id" : "ahspy_mongo_set", "version" : 13, "members" : [ { "_id" : 0, "host" : "remotedatacenter.in.montreal.dns.com", "priority" : 0 }, { "_id" : 1, "host" : "t1.micro.at.ec2.dns.com", "arbiterOnly" : true }, { "_id" : 2, "host" : "m1.xlarge.at.ec2.dns.com" } ] } 所以基本上,EC2上的一台服务器备份到了蒙特利尔的另一台服务器,由于多种原因,它们不能成为主服务器。 我想改变我的结构,我不知道从哪里开始,而不会造成很大的麻烦。 事实上,我甚至不知道我想做什么是可能的。 我想要做的是拿EC2(m1.xlarge)的主DB服务器,把它变成3 m1.large shards。 所以基本上,从: EC2副本(m1.xlarge) 在蒙特利尔备份副本 仲裁者 至 在EC2的副本 […]

MongoDB没有以任何方式安装在FreeBSD 8.2上

首先,我试着用FreeBSD 8.2在我的vps上逐步构build MongoDB。 我在构build它的最后一步遇到问题: vm3578# scons . scons: Reading SConscript files … scons version: 2.0.1 python version: 2 6 6 'final' 0 Checking whether the C++ compiler worksyes Checking for C library stdc++… yes Checking for C++ header file boost/filesystem/operations.hpp… yes Checking for C library boost_system-mt… no Checking for C library boost_system… yes Checking for […]

MongoDB – 什么是从主从更改为ReplicaSet最安全和最有效的方式?

我现在有两台配有主从configuration的mongo服务器(所有的读写操作都是用Master完成的,Slave只是一个冷备份),服务于一个相当苛刻的Web应用程序。 我想切换到3台服务器的副本 – 我有这3个已经configuration和工作(仍然没有连接到Web应用程序)。 只是想知道什么是最有效的方法(需要最短的停机时间,以及所有数据的无损传输)来将所有数据从主/从传输到RS。

Mongodb制作服务器与升级相比太慢了

我们有两套在Rackspace VPS上运行的db和app服务器。 生产和舞台。 该应用程序在Rails上,db是MongoDB。 虽然升级(与许多文件,产品,55K)工作得很好,生产服务器是非常缓慢的。 20倍或更多。 即使简单的查询接近18秒! 这是我到目前为止所做的,我仍然无法深究。 重新启动Mongo服务。 检查ping时间黑/白应用程序和数据库服务器,看看networking是否是问题。 事实并非如此。 在模型上显式运行create_indexes,但无济于事。 启用mongo分析选项,但它没有给我任何额外的信息,而我已经有了。 下面是一些db调用正在运行时的mongostat生产快照: insert query update delete getmore command flushes mapped vsize res faults locked % idx miss % qr|qw ar|aw netIn netOut conn time 0 0 0 0 0 1 0 1.95g 4.55g 122m 76 0 0 0|0 1|0 62b 1k 2 09:07:25 […]