MongoDB Catch-22不会让我丢掉庞大的收藏品

时间:2013-02-13 22:51:50

标签: mongodb mongodb-shell

所以我有一个2TB硬盘,1个mongoDB中有2个集合。

  • 收集1大约500gb,完全必要
  • 集合2约为1500gb,需要删除。

我正在运行一个意外填满整个硬盘的进程,留下0%的空间。除了Linux Distro和这个mongoDB之外,机器上几乎没有任何东西。

  • 我想删除Collection 2.

为了做到这一点,我通常会进入mongo并输入db.collection.drop()

但是,mongoDB目前还没有运行。为了启动它,我正在使用:

  • [bobby@myPC bin]# ./mongod --dbpath /home/mongo &

但是,由于HDD上没有空间,因此返回:

[bobby@myPC bin]# Thu Feb 14 17:47:10 [initandlisten] MongoDB starting : pid=1264 port=27017 dbpath=/home/mongo 64-bit host=localhost.localdomain
Thu Feb 14 17:47:10 [initandlisten] db version v2.2.3, pdfile version 4.5
Thu Feb 14 17:47:10 [initandlisten] git version: f570771a5d8a3846eb7586eaffcf4c2f4a96bf08
Thu Feb 14 17:47:10 [initandlisten] build info: Linux ip-10-2-29-40 2.6.21.7-2.ec2.v1.2.fc8xen #1 SMP Fri Nov 20 17:48:28 EST 2009 x86_64 BOOST_LIB_VERSION=1_49
Thu Feb 14 17:47:10 [initandlisten] options: { dbpath: "/home/mongo" }
Thu Feb 14 17:47:10 [initandlisten] journal dir=/home/mongo/journal
Thu Feb 14 17:47:10 [initandlisten] recover : no journal files present, no recovery needed
Thu Feb 14 17:47:10 [initandlisten]
Thu Feb 14 17:47:10 [initandlisten] ERROR: Insufficient free space for journal files
Thu Feb 14 17:47:10 [initandlisten] Please make at least 3379MB available in /home/mongo/journal or use --smallfiles
Thu Feb 14 17:47:10 [initandlisten]
Thu Feb 14 17:47:10 [initandlisten] exception in initAndListen: 15926 Insufficient free space for journals, terminating
Thu Feb 14 17:47:10 dbexit:
Thu Feb 14 17:47:10 [initandlisten] shutdown: going to close listening sockets...
Thu Feb 14 17:47:10 [initandlisten] shutdown: going to flush diaglog...
Thu Feb 14 17:47:10 [initandlisten] shutdown: going to close sockets...
Thu Feb 14 17:47:10 [initandlisten] shutdown: waiting for fs preallocator...
Thu Feb 14 17:47:10 [initandlisten] shutdown: lock for final commit...
Thu Feb 14 17:47:10 [initandlisten] shutdown: final commit...
Thu Feb 14 17:47:10 [initandlisten] shutdown: closing all files...
Thu Feb 14 17:47:10 [initandlisten] closeAllFiles() finished
Thu Feb 14 17:47:10 [initandlisten] journalCleanup...
Thu Feb 14 17:47:10 [initandlisten] removeJournalFiles
Thu Feb 14 17:47:10 [initandlisten] shutdown: removing fs lock...
Thu Feb 14 17:47:10 dbexit: really exiting now

我无法移除此集合,因为没有空间。并且没有空间,因为我无法删除此集合。

我该如何解决这个问题?有没有办法识别/ home / mongo中我可以取出哪些mongoDB文件?

1 个答案:

答案 0 :(得分:2)

根据错误消息,它抱怨没有足够的空间用于期刊。它不适合在生产环境中运行日志,但您可以尝试在解决问题时先解决它。

./mongod --nojournal --dbpath /home/mongo &

编辑:回答你的问题,mongo为每个数据库创建和分配文件,而不是集合。因此,您将无法定位特定文件来删除集合。