1

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

  • Collection 1 大约 500gb 并且是必不可少的
  • Collection 2 大约 1500gb,需要删除。

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

  • 我想删除集合 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 文件?

4

1 回答 1

2

根据错误消息,它抱怨没有足够的空间放置日志。在没有日志的情况下在生产环境中运行并不理想,但您可以在解决问题时尝试从它开始。

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

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

于 2013-02-14T00:49:20.440 回答