Articles of mongodb

如何在MongoDB上执行核心转储

我正在调查MongoDB中潜在的内存泄漏的过程中,昨天晚上我遇到了一个问题,其中使用的常驻内存,有一个意外的攀升至+ 10GB。 我正在试图核心转储来检查内存的内容,但是有一个问题这样做。 我尝试使用这里find的程序 ,使用kill -SIGQUIT 9999 ,但是这似乎并没有从mongod产生一个实际的核心转储,而是我能find的唯一的东西是在我的末尾看起来几条无用的线日志文件。 2016-04-27T14:28:01.413+0000 F – [initandlisten] Got signal: 3 (Quit). 0x1310252 0x130f189 0x130f992 0x349f40f500 0x349f0e0d03 0x12b4fc4 0x977f26 0x97a9bd 0x349f01ecdd 0x974881 —– BEGIN BACKTRACE —– {"backtrace":[{"b":"400000","o":"F10252","s":"_ZN5mongo15printStackTraceERSo"},{"b":"400000","o":"F0F189"},{"b":"400000","o":"F0F992"},{"b":"349F400000","o":"F500"},{"b":"349F000000","o":"E0D03","s":"__select"},{"b":"400000","o":"EB4FC4","s":"_ZN5mongo8Listener13initAndListenEv"},{"b":"400000","o":"577F26","s":"_ZN5mongo13initAndListenEi"},{"b":"400000","o":"57A9BD","s":"main"},{"b":"349F000000","o":"1ECDD","s":"__libc_start_main"},{"b":"400000","o":"574881"}],"processInfo":{ "mongodbVersion" : "3.2.4", "gitVersion" : "e2ee9ffcf9f5a94fad76802e28cc978718bb7a30", "compiledModules" : [], "uname" : { "sysname" : "Linux", "release" : "2.6.39-300.17.2.el6uek.x86_64", "version" : "#1 SMP Wed Nov […]

OpenShift MongoDB ECONNREFUSED

当试图连接到mongodb-2.4墨盒时,我不断收到以下信息 ==> app-root/logs/nodejs.log <== Error: connect ECONNREFUSED 127.0.0.1:27017 at Object.exports._errnoException (util.js:893:11) at exports._exceptionWithHostPort (util.js:916:20) at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1075:14) 我正在创build连接string如下 if(process.env.OPENSHIFT_MONGODB_DB_PASSWORD){ connection_string = process.env.OPENSHIFT_MONGODB_DB_USERNAME + ":" + process.env.OPENSHIFT_MONGODB_DB_PASSWORD + "@" + process.env.OPENSHIFT_MONGODB_DB_HOST + ':' + process.env.OPENSHIFT_MONGODB_DB_PORT + '/' + process.env.OPENSHIFT_APP_NAME; } 它看起来像什么时候失败它认为端口是27017,但是当我运行rhc端口转发appname它显示我以下不同的端口mongodb Service Local OpenShift ——- ————— —- —————————————————— haproxy 127.0.0.1:8080 => 127.6.174.2:8080 haproxy 127.0.0.1:8081 […]

随机的“MongoError:未经XXX授权执行命令{YYY}”与mongo 3.2

因为最近我有这样的随机错误: 2016-06-06T18:17:55.386Z pid:2458 worker:3 MongoError: not authorized on db to execute command {…someQuery…} 2016-06-06T18:17:55.386Z pid:2458 worker:3 at Function.MongoError.create (/var/lib/strong-pm/svc/1/work/a6e0bde254cbdedde6345bdf94e29e51828c5fa2.1465232211706/node_modules/loopback-connector-mongodb/node_modules/mongodb-core/lib/error.js:31:11) 2016-06-06T18:17:55.386Z pid:2458 worker:3 at queryCallback (/var/lib/strong-pm/svc/1/work/a6e0bde254cbdedde6345bdf94e29e51828c5fa2.1465232211706/node_modules/loopback-connector-mongodb/node_modules/mongodb-core/lib/cursor.js:200:36) 2016-06-06T18:17:55.386Z pid:2458 worker:3 at Callbacks.emit (/var/lib/strong-pm/svc/1/work/a6e0bde254cbdedde6345bdf94e29e51828c5fa2.1465232211706/node_modules/loopback-connector-mongodb/node_modules/mongodb-core/lib/topologies/server.js:119:3) 2016-06-06T18:17:55.386Z pid:2458 worker:3 at null.messageHandler (/var/lib/strong-pm/svc/1/work/a6e0bde254cbdedde6345bdf94e29e51828c5fa2.1465232211706/node_modules/loopback-connector-mongodb/node_modules/mongodb-core/lib/topologies/server.js:397:23) 2016-06-06T18:17:55.387Z pid:2458 worker:3 at Socket.<anonymous> (/var/lib/strong-pm/svc/1/work/a6e0bde254cbdedde6345bdf94e29e51828c5fa2.1465232211706/node_modules/loopback-connector-mongodb/node_modules/mongodb-core/lib/connection/connection.js:302:22) 2016-06-06T18:17:55.387Z pid:2458 worker:3 at emitOne (events.js:90:13) 2016-06-06T18:17:55.387Z pid:2458 worker:3 at Socket.emit (events.js:182:7) […]

mongodb甚至以最低的冗长度logging整个文档

我们在带有Linux AMI的AWS环境中使用mongodb版本3。 最初mongo正在logging整个文件。 然后,我们降低了yaml的详细程度。 这似乎使大多数(99%)的文件不被logging。 但是我们仍然发现它偶尔还会logging这个logging。 它似乎做了一个写,然后一个命令,都包含整个logging。 有没有办法确保文档永远不会被写入日志,同时仍然有用的日志logging? 谢谢 systemLog: quiet: true destination: file path: /var/log/mongodb.log logAppend: true logRotate: rename traceAllExceptions: false timeStampFormat: iso8601-utc verbosity: 1 # This will be inherited by any component with verbosity -1 component: accessControl: verbosity: -1 # NOTE: Negative one (-1) means "inherit" command: verbosity: 0 # MUST BE ZERO!!! […]

无法禁用transparent_hugepage /碎片整理从来没有在centOS 7.2

我正在关注这个链接, https://docs.mongodb.com/v3.0/tutorial/transparent-huge-pages/ 我正在得到输出 cat /sys/kernel/mm/transparent_hugepage/enabled always madvise [never] cat /sys/kernel/mm/transparent_hugepage/defrag [always] madvise never 这就是我所做的 1)在/etc/init.d/disable-transparent-hugepages上创build以下文件: case $1 in start) if [ -d /sys/kernel/mm/transparent_hugepage ]; then thp_path=/sys/kernel/mm/transparent_hugepage elif [ -d /sys/kernel/mm/redhat_transparent_hugepage ]; then thp_path=/sys/kernel/mm/redhat_transparent_hugepage else return 0 fi echo 'never' > ${thp_path}/enabled echo 'never' > ${thp_path}/defrag unset thp_path ;; esac 2)跑步 sudo chmod 755 /etc/init.d/disable-transparent-hugepages 3)跑步 […]

无法在Ubuntu上启动mongod服务

我正在运行Ubuntu 16.04上的最新Mongo版本。 我可以用这个命令来运行它: mongod –sslMode requireSSL –sslPEMKeyFile /etc/ssl/mongodb.pem 但每当我运行它: sudo service mongod start 它的代码是2(无效的参数)。 这是我在/etc/mongod.conf中的mongodconfiguration storage: dbPath: /var/lib/mongodb journal: enabled: true # engine: # mmapv1: # wiredTiger: # where to write logging data. systemLog: destination: file logAppend: true path: /var/log/mongodb/mongod.log # network interfaces net: port: 27017 bindIp: 127.0.0.1 mode: requireSSL PEMKeyFile: /etc/ssl/mongodb.pem 我按照安装说明进行添加 ExecStart=/usr/bin/mongod –quiet […]

dpkg:error handling包

我试图安装在Ubuntu 14.04LTS mongodbserver参考mongodb文档,但得到与dpkg相关的错误 root@c3:~# apt-get install -y mongodb-org Reading package lists… Done Building dependency tree Reading state information… Done mongodb-org is already the newest version. 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 2 not fully installed or removed. After this operation, 0 B of additional disk space will be used. […]

mongodb:客户端可以build议重新select副本集吗?

Mongodb副本集提供自动故障转移。 如果主要发生故障(即小学和其中任何一个次要networking之间存在networking问题),则发生重选。 但是,请考虑以下情况: 所有的服务器都启动了,主副本之间的networking也没有问题,因此复制副本是可以的。 但是,由于另一个networking问题(未知到副本集),客户端无法访问主服务器。 因此HA丢失了。 在这种情况下,客户端是否可以ping通一个辅助节点,并通知辅助节点不能到达主节点,并且应该执行新的选举。 这可能吗?

在真实和dockerized实例之间部署Mongo副本集

我想知道是否可以用一个真正的mongo实例连接两个docker集装箱。 我真的想从远程主机同步一个450GB的数据库,同时在位于另一个物理服务器上的容器上运行副本集。 我创build了原始数据库的更小转储的原始应用程序的dockerized版本,我非常满意。 现在是考虑移动原始数据库的时候了。 我已经有了一些关于如何在这个问题上设置不同容器之间的副本集的好build议,但是现在我真的不确定要遵循的path。 一开始我想转储原始数据库并将其恢复到新的实例中,但是有定期运行脚本的cron作业来更新原始数据库。 我想避免在数据收集方面存在差距。 我真的很想了解这个大动作的最佳做​​法。 不知道它可能是有用的知道,但我们现在通过VPN访问此数据库的时刻。

MongoDB rs.initiate错误:replSetInitiate仲裁检查失败,因为并非所有build议的成员都肯定地回应

我必须使用X.509证书启动自己的内部身份validation副本集,但是我失败了。 任何build议是受欢迎的。 在Debian 8.2 x64上的MongoDB 3.2 x64。 这是MongoDB大学课程“M310:MongoDB安全性”的一个问题。 我错过了最后期限。 导师: 你可以打开你的服务器成员身份validation选项,然后rs.initiate,然后创build您的用户。 我有这个文件夹结构: ~ `– shared `– certs |– ca.pem |– client.pem `– server.pem 我创build了这个设置我的副本集的bash脚本: #!/bin/bash course="M310" exercise="HW-1.3" workingDir="$HOME/${course}-${exercise}" dbDir="$workingDir/db" logName="mongodb.log" ports=(31130 31131 31132) replSetName="rs1" host=`hostname -f` initiateStr="rs.initiate({ _id: '$replSetName', version: 1, members: [ { _id: 0, host: '$host:${ports[0]}' }, { _id: 1, host: '$host:${ports[1]}' }, […]