如何恢复丢弃的MongoDB数据库?

时间:2011-07-08 02:40:15

标签: mongodb database

如果有人意外删除了MongoDB数据库但执行了db.dropDatabase(),他怎么能恢复数据库呢?

删除MongoDB中的数据库很简单,命令db.dropDatabase()不会删除它上面的所有数据,而是将其标记为要删除,因此使用drop命令后数据库的大小不会改变,我认为应该有一些方法来删除待删除的标记。有人能指出我怎么做?

2 个答案:

答案 0 :(得分:5)

我试图重现你做过的事情。在我备份之后,我使用db.dropDatabase()杀死了一个数据库:-) db名称是'gacheater'。在删除mongodb文件夹之前包含3个文件(db非空):

  • gacheater.ns
  • gacheater.1
  • gacheater.2
删除这些文件后

消失了。因此,我认为 mongodb确实删除了您的数据

所以你唯一的选择就是尝试从文件系统中恢复文件

PS:MacOS 10.5,MongoDB 1.8.2

答案 1 :(得分:3)

AFAIK大多数系统只是通过标志将文件标记为已删除,而不是实际覆盖它。可以使用标准工具恢复文件...

http://www.cyberciti.biz/tips/linuxunix-recover-deleted-files.html

这些可能更容易使用

http://extundelete.sourceforge.net/

指出无法替代备份。