Articles of mongodb

initAndListen中的exception:28595 2:没有这样的文件或目录,终止

服务器崩溃后,mongod服务不启动。 操作系统:Windows Server 2008 R2启动mongo版本:3.0.0修复选项没有帮助,崩溃后日志目录是空的更新mongo到3.0.2,这是所有在日志文件: 2015-04-28T14:56:45.154+0600 I CONTROL Hotfix KB2731284 or later update is installed, no need to zero-out data files 2015-04-28T14:56:45.154+0600 W – [initandlisten] Detected unclean shutdown – C:\Program Files\MongoDB\Server\3.0\data\mongod.lock is not empty. 2015-04-28T14:56:45.154+0600 W STORAGE [initandlisten] Recovering data from the last clean checkpoint. 2015-04-28T14:56:45.154+0600 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=3G,session_max=20000,eviction=(threads_max=4),statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0), 2015-04-28T14:56:45.154+0600 I – […]

MongoDB – 将用户绑定到特定的副本集节点

在MongoDB 3.0中有没有办法让用户只能访问单个副本集节点? 我们有更多的数据在磁盘上比我们的记忆。 因此,为了保持我们的生产支持不被我们的应用程序分页到内存数据中,我们希望为我们的应用程序指定主要和次要副本,并为只读产品支持访问指定一个辅助副本。 那可能吗? 谢谢

MongoDB备份和清除

我正在探索基本的dbadmin需求的解决scheme: 定期备份和清除MongoDB中的数据 。 基本上,我需要一个MongoDB的logrotate。 我有一个后端程序填充集合。 我故意没有在我的应用程序中实现备份和清除function,因为我在想这是一个dbadmin问题。 这个集合越来越多,每3秒钟有2个文档的节奏。 我想定期存档旧文件,并从我的collections中删除它们。 期间,过期,地方和模式如何归档将是可configuration的,就像logrotate一样。 到目前为止,我发现TTL删除它和mongodump来备份它,但我不知道我是否正在寻找正确的方向。 编辑:我会好奇得到有关MySql相同的问题的答案 重新编辑:由于无法确定哪里是最好的,所以主动复制,sysadmin和dbadmin意见对我来说都很重要。 如果您觉得不好,请随意标记

Mongo 2.6.9进程停止,没有错误日志

我有一个在Linux SMP实例上运行的Mongo 2.6.9进程。 这里是uname -a与服务器名称redacted: Linux xxx.xxxx.com 3.13.0-042stab085.20 #1 SMP Sun Jul 20 13:27:24 MSK 2014 x86_64 x86_64 x86_64 GNU/Linux 过去几次,Mongo事件已经崩溃,但并不罕见(每隔一个月),我也没有调查过。 今天发生了5次。 当然,我先看看日志文件。 没有什么比我更惊讶的了。 下面是日志文件的尾部,就在崩溃之前: 2015-05-27T18:29:12.547-0400 [clientcursormon] mem (MB) res:27 virt:691 2015-05-27T18:29:12.547-0400 [clientcursormon] mapped (incl journal view):480 2015-05-27T18:29:12.547-0400 [clientcursormon] connections:10 2015-05-27T18:30:12.435-0400 [DataFileSync] flushing mmaps took 0ms for 6 files 然后,我编辑/etc/mongod.conf ,并将verbose更改为true 。 现在,除了上述之外,我还得到了一些看起来TTLMonitor线: 2015-05-27T18:33:12.435-0400 [DataFileSync] […]

mongodb 3.0不会启动ArchLinux

我在Archlinux上启动mongodb时遇到了一些麻烦。 以下是关于我的系统和configuration的一些基本信息。 root /var/lib/mongodb # uname -a Linux yxx1 4.0.4-2-ARCH #1 SMP PREEMPT Fri May 22 03:05:23 UTC 2015 x86_64 GNU/Linux root /var/lib/mongodb # mongod –version db version v3.0.3 git version: nogitversion OpenSSL version: OpenSSL 1.0.2a 19 Mar 2015 我在/etc/mongodb.conf使用YAMLconfiguration: net: bindIp: 0.0.0.0 port: 27017 processManagement: fork: true storage: dbPath: /var/lib/mongodb directoryPerDB: true engine: wiredTiger […]

在一个次要的完全同步之后巨大的oplog大小导致性能问题 – MongoDB

我是MongoDB的新手。 我有一个在CentOS 6和Mongo 2.6.8上有3个成员(1个主要和2个副本)的副本。 其中一个副线由于内存消耗大而崩溃,我无法正确重启(由于某些数据损坏),所以我删除了数据arrays的全部内容以强制完全重新同步。 4个小时后,辅助同步并返回到副本集。 然而,它产生了25个“本地”文件(local.0 … local.24),而它以前只有2个(像其他成员一样),仅仅因为这些文件占用了超过60GB的磁盘空间。 而且,oplog的大小也改变了(以前是990MB,现在是47GB): rs:SECONDARY> rs.printReplicationInfo(); configuration的oplog大小:47774.441162109375MB日志长度从头到尾:579127secs(160.87hrs)oplog第一个事件时间:星期二2015年6月23日16:53:13 GMT + 0100(IST)oplog最后一次事件时间:2015年6月30日星期二09:45: 20 GMT + 0100(IST)现在:Tue Jun 30 2015 09:45:20 GMT + 0100(IST) 自从发生这种情况以来,服务器一直在消耗大约130 GB的虚拟内存,并且显示出糟糕的性能。 我必须做另一个辅助完全同步(因为类似的问题),没有任何改变(它产生了2个“本地”文件和oplog的大小仍然是990MB)。 我在想: “本地”数据库的这种行为的原因是什么? 为什么如果“本地”数据库没有被复制,这种行为会影响性能? 有没有办法将这个辅助节点改回原来的状态(只有2个本地文件和一个更小的oplog)? 我知道可以改变oplog的大小,但是我想知道是否可以停止服务,删除“本地”文件,使它们再次同步。 任何其他的build议都比欢迎(:

MongoDB fsyncUnlock不会偶尔在Windows上解锁

我们有一个安装在Windows服务器上的MongoDB副本集,具有计划的备份工作。 MongoDB被configuration为使用日记function。 作业通过MongoDB(主服务器db.fsyncLock()上的脚本运行db.fsyncLock() ,然后执行Kaminario文件系统快照,然后通过脚本运行db.syncUnlock() 。 locking/解锁是分开的,因此不使用相同的连接。 问题是db.fsyncUnlock()不总是工作,把数据库locking写入,直到通过shell手动解锁。 我们试图在不使用fsyncLock()情况下执行快照,但是,我们的testing显示: 只恢复单个数据库 – 仅导致数据中有“漏洞”(某些写入线程有未提交的更改,然后是已提交的更改) 恢复整个数据库实例,由于locking和缺失日志,恢复失败,尽pipe日志已启用并存在 而通过fsyncLock()testing通过。 使用writeConcern = 2执行testing,因为我们要确保在MongoDB崩溃的情况下保持持久性。 我的问题是: 一个。 如何在执行快照后保证fsyncUnlock()成功? 湾 有没有办法保证一致的备份,而不使用fsyncLock() ? 交叉提交DBA.SE。 编辑: 经过进一步的调查,看起来问题是快照挂,而不是解锁。 但是,这仍然不能解释需要locking的fsync。

MongoDB使用dynamic端口?

我们使用默认端口(27017)在Windows上使用MongoDB副本。 我们的服务器都在防火墙之后,我们要configuration防火墙只允许打开默认的端口。 但是,在查看netstat时,我们看到使用了以下端口: [mongod.exe] TCP 0.0.0.0:27017 SERVER-NAME:0 LISTENING [mongod.exe] TCP 0.0.0.0:47001 SERVER-NAME:0 LISTENING 为什么mongo起诉dynamic端口47001? 我们必须打开防火墙上的dynamic端口(除了默认的27017)以允许其他服务器访问它。 为什么mongo需要dynamic端口? 我可以至less强迫它使用预先configuration的端口? 谢谢!

什么是解决的默认位置mongod.exe查找configuration?

试图做一个最小的configurationmongod,我想使用“自然”path结构的configuration文件的位置。 为了举例说明我在找什么,下面是其他一些热门程序的等价path: Apache:../conf/httpd.conf MySQL:../my.ini PHP:./php.ini OpenSSL:./openssl.cnf 对于mongo,我在文件本身的名称上find了混合的信息,它似乎支持yaml以及典型的key <>值格式。 我知道,所有这些程序都有一个强制开关(包括mongo)来指定configuration文件的名称和位置,但这不是我正在寻找的。 我已经经历了这些(和其他一些资源,但是这些资源似乎是最接近的) 在Windows上安装mongodb configuration选项 然后有configuration ,它是configuration文件格式的信息,但不是它应该在什么位置或应该命名如果不使用参数强制configuration文件的位置。

问题与MongoDB数据目录的权限

TL; DR: MongoDB在一切允许的目录上抱怨权限。 我在Debian Jessie ARM上运行MongoDB v2.4.10 。 我想将数据存储在外部驱动器上,格式化为ext4并通过/etc/fstab使用以下行进行装载: UUID=<uuid goes here> /mnt/external1 ext4 defaults,noatime 0 0 /mnt/external1上的权限是: $ ls -l | grep external1 drwxrwxrwx 4 root plugdev 4096 Jul 31 10:57 external1 在驱动器安装完成后, $ sudo chown -R root:plugdev /mnt/external1 $ sudo chmod 777 -R /mnt/external1 mongodb用户在组plugdev : $ cat /etc/group | grep mongodb plugdev:x:46:mongodb […]