Articles of mongodb

MMS从uname获取主机名,无法连接到它

我试图让10gen的MongoDB监控服务监控我的3节点副本集。 在AWS VPC中运行的副本集。 每个节点运行在不同的[虚拟]机器上。 假设他们的IP是192.168.1.1 (主要或次要), 192.168.1.2 (主要或次要), 192.168.1.3 (仲裁者)。 从快速查看源代码看来,MMS似乎可以得到正在运行的机器的主机名,如下所示: platform.uname()[1] 对于我的VPC EC2实例,这返回类似的东西 ip-192-168-1-1 MMS然后尝试连接到这个不能parsing的主机名。 我宁愿只使用IP地址(因为它们总是静态的),但是mmsAgent.py的platform.uname()[1]硬编码使用似乎排除了这一点。 那么,什么是一个优雅的方式呢? Hack /etc/hosts ? 我没有为此设置DNS服务器。 也许我只是误解如何configuration彩信。

为什么我不能在Ubuntu 14.04 32bit上安装mongodb 3.0?

我遵循了这里列出的所有正式的build议: 官方网站 详细地说,我做了: sudo apt-key adv –keyserver hkp://keyserver.ubuntu.com:80 –recv 7F0CEB10 (似乎没问题) echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list (似乎没问题,因为使用正确的条目创build了/etc/apt/sources.list.d/mongodb-org-3.0.list文件) sudo apt-get update (似乎没问题,因为我看到列表中的回购) 但是当我这样做: sudo apt-get install -y mongodb-org 它总是说“找不到包mongodb组织”。 如果我做: sudo apt-get install -y mongodb 它工作,但它不安装版本3.0,但版本2.4 我已经多次尝试删除/清除2.4版本后安装3.0,但具有相同的结果:“找不到包mongodb组织” 我怎样才能安装3.0版本? 编辑 apt-cache search mongodb没有find关于mongodb-org的任何信息 这是/etc/apt/sources.list.d/mongodb-org-3.0.list的内容: deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.0 multiverse 这些是关于mondodb的apt-get更新产生的行: Ign http://repo.mongodb.org trusty/mongodb-org/3.0 […]

运行一个没有3GB日志文件的MongoDBconfiguration服务器

对于生产分区的MongoDB安装,我们需要3个configuration服务器。 根据文档“configuration服务器mongod进程相当轻量级,可以在执行其他工作的机器上运行”。 但是,在默认configuration中,它们都启用了日志logging,并且预分配占用了3 GB的磁盘空间。 我认为一个configuration服务器的实际数据和交易量是相当小的,所以这似乎有点太多了。 有没有一种方法(安全地)运行这些configuration服务器与日志的磁盘使用less得多? 我需要configuration服务器上的所有日志吗? 我可以设置日志大小更小吗?

是否有可能从.ns和.0,.1,…恢复MongoDB数据库。 …文件?

我在Ubuntu 12.10上安装了MongoDB 2.0.4。 最近我从外面连接到数据库时遇到了一些问题,并且发现有些东西阻止了MongoDB的正确启动。 正如在几个来源(见StackOverflow)build议我删除/var/lib/mongodb/mongodb.lock并运行mongod –repair 。 这并没有解决问题,MongoDB不会运行,并保持创buildlocking文件,事后不去处理。 通过查看日志,我意识到,它不能访问一些名为$tmpSomething文件夹,所以(因为名称build议临时文件夹),我把它删除,然后这一切工作…除了我只有一个我以前的数据库在望,而其他的仍然在那里,因为我的/var/lib/mongodb/文件夹仍然充满.ns .0 .1 .n文件重量很多。 有没有办法将它们还原到数据库中? (我曾经用mongorestore试过,但是正如我期待的那样,它并不处理这些文件)。 谢谢

pecl安装mongo – 不断编译错误的模块API

在这里使用Ubuntu 12.04,nginx和php5-fpm 我有mongo在php 5.3上运行良好,然后我添加了ondrej / php5 ppa并更新到php5.4。 它保持GD和CURL扩展,但不是mongo。 我重新将该行添加到php.ini文件,并没有。 然后我启用启动错误,并得到这个: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20100525/mongo.so' – /usr/lib/php5/20100525/mongo.so: cannot open shared object file: No such file or directory 所以,疯狂的猜测,我find -name 'mongo.so' ,并将文件从20090626 /移动到20100525 / …导致此错误: PHP Startup: mongo: Unable to initialize module Module compiled with module API=20090626 PHP compiled with module API=20100525 These […]

Mongodb – 正确的方式来旋转日志

Mongo 文档说,我可以: 使用-SIGUSR1信号,并获得旧的日志重命名和电stream切换 使用来自操作系统的logrotate 我希望操作系统的logrotate能够压缩旧文件并删除最老的文件,但是除了发送SIGUSR1之外,看不出有什么办法告诉mongod进程切换当前日志。 所以我写了 /var/log/mongodb/*.log { daily rotate 5 compress dateext missingok notifempty sharedscripts postrotate /usr/bin/killall -SIGUSR1 mongod /usr/bin/killall -SIGUSR1 mongos endscript } 到/etc/logrotate.d/mongo。 现在,从logrotate和空日志文件(如mongodb.log.2013-09-18T23-49-44获取名为logfiles作为SIGUSR1切换的痕迹。 如何摆脱后者?

这是一个有效的MongoDB备份策略吗?

我有一个专门的服务器,大约10GB的MongoDB数据库。 我需要做每日备份,但我不能停止与数据库。 是否有可能在单个磁盘上使用副本集(有两个在不同端口上运行的mongod实例),并简单地使第二个副本脱机并将数据文件备份到非现场存储(如S3(日志打开))? 或者使用主/从比副本更好? 这是否可行,如果是的话,我可能会遇到什么样的问题? 如果没有,我怎么概念化这个工作?

node.js,mongodb,redis,关于ubuntu在生产中的性能下降,RAM是免费的,CPU 100%

正如问题标题所暗示的那样,我很难弄清楚在我的应用程序上可以改进什么(或者在os,ubuntu中进行调优)以获得可接受的性能。 但首先我要解释一下架构: 前端服务器是8核心机器,运行Ubuntu 12.04的8个内存。 该应用程序是完全用JavaScript编写的,运行在node.js v 0.8.22(因为一些模块似乎抱怨新版本的节点)我使用nginx 1.4来代理从端口80和443的httpstream量到8个受pipe理的节点工作人员并开始使用节点群集api。 我使用最新版本的socket.io 0.9.14来处理websocket连接,在这个连接上我只启用了websocket和xhr-polling作为可用的传输。 在这台机器上,我也运行一个Redis实例(2.2) 我将持久性数据(如用户和分数)存储在mongodb(3.6)上的第二台服务器上,并带有4个内存和2个内核。 这个应用程序在几个月前就开始投入使用(直到几个星期前它已经在一个盒子里运行),每天大约有18k个用户在使用它。 除了一个主要问题之外,它一直运行得非常好:性能下降。 随着使用,每个进程使用的CPU的数量增长,直到它统一工作人员(这将不再服务请求)。 我暂时解决了每分钟检查每个工作人员使用的cpu,如果达到98%,重新启动它。 所以这里的问题主要是CPU,而不是RAM。 内存不再是一个问题,因为我已经更新到socket.io 0.9.14(早期版本泄漏内存),所以我怀疑是一个内存泄漏的问题,尤其是因为现在是CPU快速增长(我必须每天重新启动每个工人10-12次!)。 在使用中的RAM也是老生常谈,但是每2-3天使用一次就很慢,奇怪的是即使我彻底重新启动整个应用程序也不会释放。 只有重新启动服务器才会被释放! 这我真的不明白… 我现在已经发现了非常棒的nodefly ,所以我终于可以看到我的生产服务器上发生了什么事情,而且我正在收集数据。 如果有人想看看我可以给你的图表,但基本上我可以看到我有80到200个并发连接! 我期待node.js处理数千个,而不是数百个请求。 另外,httpstream量的平均响应时间在500到1500毫秒之间浮动,我认为这真的是很多。 另外,在这个有1300个在线用户的时刻,这是“ss -s”的输出: Total: 5013 (kernel 5533) TCP: 8047 (estab 4788, closed 3097, orphaned 139, synrecv 0, timewait 3097/0), ports 0 Transport Total IP IPv6 * 5533 – – […]

如何通过SSH隧道连接到MongoDB服务器

使用sequelpro连接到AWS上的远程mysql服务器非常简单 ,但是我正在用mongodb做同样的事情。 我尝试通过命令行设置一个SSH隧道,如下所示: ssh -fN -l root -i path/to/id_rsa -L 9999:host.com:27017 host.com 我也尝试用ip地址replace主机 我们的想法是将端口9999上的所有mongodb连接转发到端口27101上的主机上。但是,当我运行命令: mongo –host localhost –port 9999 连接失败,我得到这个: MongoDB shell version: 2.6.0 connecting to: localhost:9999/test channel 2: open failed: connect failed: Connection timed out channel 3: open failed: connect failed: Connection timed out 2014-05-22T14:42:01.372+0300 DBClientCursor::init call() failed 2014-05-22T14:42:01.374+0300 Error: DBClientBase::findN: transport error: localhost:9999 […]

一台服务器上有多个Mongo

我不是在谈论分片 。 我们有一个testing服务器(linux),并且已经有一个mongo属于另一个项目/小组。 是否有可能在一台机器上运行多个独立的mongodb 实例 ? 我该怎么做?