Articles of mongodb

MongoDB是否需要重新启动才能重新加载CRL?

我使用TLS / SSL运行MongoDB副本集。 我也使用CRL来阻止客户的吊销证书。 副本集成员的相关configuration如下。 net: ssl: mode: requireSSL PEMKeyFile: /opt/member.pem clusterFile: /opt/member.pem CAFile: /opt/ca.pem CRLFile: /opt/crl.pem security: clusterAuthMode: x509 我的问题是:每次我更新磁盘上的CRL文件时是否需要重新启动mongod进程?

在Docker中为MongoDB创build一个新用户

我正在使用默认的MongoDB Docker镜像,我正在尝试为数据库创build一个新的用户。 我目前正在试图这样做: FROM docker.io/mongo:3.2 MAINTAINER <alexandernst> [email protected] ADD create_ddbb.js /tmp/ RUN mongod –fork –logpath /var/log/mongodb.log \ && sleep 5 && mongo foobar /tmp/create_ddbb.js 和create_ddbb.js : db.createUser( { user: "*******", pwd: "*******************", roles: [ { role: "readWrite", db: "foobar" } ] } ); 当我构buildDockerfile时,我看到: Step 4 : RUN mongod –fork –logpath /var/log/mongodb.log && sleep 5 […]

Mongo Sharding – configuration服务器和Mongoauthentication

我很快就需要分割一个数据库,并且不清楚在mongos和config服务器上启用身份validation的最佳实践。 我想所有的东西都用密码保护。 每个configuration服务器都应该启用auth ? 如果是这样,那么在每个设置相同的用户? 只为pipe理数据库? 或者是否需要为configuration数据库创build一个? 我猜你不需要在mongos上创build任何用户,因为它应该从configuration和碎片本身inheritance,这是正确的吗? 添加新的分片时,是否需要为新的分片上的每个分片数据库设置相同的用户? 谢谢!

在AWS上的MongoDB灾难准备

我正在寻找涵盖AWS托pipe环境中的MongoDB灾难恢复的最佳实践build议。 在这一点上,我们的设置是相当标准的,3台服务器的副本集(1个主服务器,1个仲裁服务器和1个仲裁器),主服务器和辅助服务器上的mongo卷均支持EBS。 全部在一个地区,分布在多个可用区域。 最终我们需要跨越地区,但这是另一天的讨论。 我在Mongo文档中看到的备份build议讨论了EBS快照(这很容易自动化)。 但是,如果发生灾难,他们不会让我们回到失败的时候。 我是否需要loggingoplogs并使用它们在失败后恢复? 我是否应该在专门用于备份和快照的副本集中创build另一个实例,以获取主要和次要的快照? 如果是这样,我们又回到oplog的问题是不是? 我应该快照每个副本卷,并依靠副本集完全覆盖故障和上次快照之间的时间? 我正在寻找最可靠的战略。 第二次数据保护和系统故障后的恢复速度比价格优先。 稍后我们可以优化价格。 预先感谢所有的build议…

在mongostat中locking%是什么意思?

当运行mongostat查看我们的mongo数据库时,我会经常看到locking的%数字跳跃,有时高达80%。 以下是一些示例行: insert query update delete getmore command flushes mapped vsize res faults locked % idx miss % qr|qw ar|aw netIn netOut conn time 0 10 7 0 0 17 0 2.27g 5g 1.63g 0 0.1 0 0|0 0|0 22k 7k 83 15:46:10 0 21 7 1 0 23 0 2.27g 5g 1.73g 0 0.1 […]

我如何使用tcpdump过滤MongoDB副本设置心跳?

有时,在排除副本集的健康状况时,我想特别过滤掉心跳包,跟踪它们,然后回复(或缺less),而没有其他数据stream集。 不幸的是,这些数据包的结构与正常的命令/查询和响应非常相似。 虽然Wiresharkparsing器让我能够接触到MongoDB的有线协议,但是我不能用tcpdump的这个技术来过滤掉源数据包。 所以,问题是 – 如何过滤tcpdump中的MongoDB副本集心跳?

mongoDB不会远程连接

我已经在EC2上的redhat虚拟机上安装了mongoDB。 服务器在本地运行良好,可以连接和执行命令等。现在,我尝试从EC2上的另一个虚拟机远程连接,但无论我尝试多less,我都无法连接。 起初我以为这是一个安全组的问题,所以我尝试启用组内的所有端口(这两个虚拟机属于相同的secirity组),我也启用iptables文件中的连接(是的,重新启动服务),但它仍然行不通…任何想法可能是什么问题? 我得到的错误是: MongoDB shell version: 2.0.2 connecting to: ec2-XXXX.eu-west-1.compute.amazonaws.com/test Thu Jan 5 13:55:32 Error: couldn't connect to server ec2-XXXX.eu-west-1.compute.amazonaws.com shell/mongo.js:86 exception: connect failed 预先感谢。 关于“bind_ip”设置,好吧..没有默认值,我的意思是在默认情况下,在mongodb.conf中甚至没有bind_ip行。 我可能期望像bind_ip = 127.0.0.1这样我可以注释掉它,但它不在那里,所以我尝试bind_ip = 0.0.0.0,但仍然不工作。

如何为mongod设置ulimits?

如何在CentOS上设置mongod进程/用户的ulimits? 我已阅读官方文档,但没有提供特定于操作系统的说明。 我需要设置ulimit -u 64000 ,需要这个在重启后保留。 我正在运行CentOS 5.5,但即将升级到6.5。 我不想修改包pipe理器安装的任何脚本

使用另一台机器上的mongodb工具(mongodump,mongorestore)

我有一个mongodb服务器(A)和一个http服务器(B)。 我想在http服务器(B)上运行mongodump和mongorestore命令来备份服务器B上的数据。但是这些工具随附了mongodb安装,我不想将mongodb安装到我的http服务器上。 我怎么能做到这一点?

在同一台服务器上安装多个mongoDB版本

我已经安装了一个2.4 mongoDB版本,我想和最近发布的2.6版本进行比较。 我想知道如果可能做一个干净的新安装,而不是更新,看看这两个版本可以共存于同一台服务器。 此刻我正在使用Linux红帽发行版。 谢谢。